日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

Oracle入门(十四.3)之创建PL / SQL块

發(fā)布時(shí)間:2023/12/3 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle入门(十四.3)之创建PL / SQL块 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、PL / SQL塊結(jié)構(gòu)

一個(gè)PL / SQL塊由三部分組成。


PL / SQL塊結(jié)構(gòu)部分



二、PL / SQL編譯器

????用高級(jí)編程語(yǔ)言(C,Java,PL / SQL等)編寫(xiě)的每個(gè)程序都必須經(jīng)過(guò)檢查并轉(zhuǎn)換為二進(jìn)制代碼(1和0),然后才能執(zhí)行。 執(zhí)行此檢查和翻譯的軟件稱(chēng)為編譯器。


????PL / SQL編譯器在需要時(shí)自動(dòng)執(zhí)行。 它不僅檢查每個(gè)單詞拼寫(xiě)是否正確,而且還檢查是否存在任何引用的數(shù)據(jù)庫(kù)對(duì)象(如表),并且用戶(hù)具有訪問(wèn)它們的必要特權(quán)。


三、匿名塊

(1)匿名塊的特征
?未命名的塊
?未存儲(chǔ)在數(shù)據(jù)庫(kù)中
?在其執(zhí)行的應(yīng)用程序中的內(nèi)部聲明為內(nèi)聯(lián)
?每次執(zhí)行應(yīng)用程序時(shí)編譯
?傳遞給PL / SQL引擎以在運(yùn)行時(shí)執(zhí)行

?無(wú)法調(diào)用或調(diào)用,因?yàn)樗鼪](méi)有名稱(chēng),執(zhí)行后不存在

[DECLARE] BEGIN--statements [EXCEPTION] END;(2)匿名塊的例子

沒(méi)有聲明或異常部分,只執(zhí)行

BEGINDBMS_OUTPUT.PUT_LINE('PL/SQL is easy!'); END;

宣言和執(zhí)行部分,但沒(méi)有例外部分

DECLAREv_date DATE := SYSDATE; BEGINDBMS_OUTPUT.PUT_LINE(v_date); END;

宣言和例外部分

DECLAREv_country_name VARCHAR2(40);v_region_id NUMBER; BEGINSELECT country_name, region_idINTO v_country_name, v_region_idFROM countries WHERE country_id='CA';DBMS_OUTPUT.PUT_LINE ('The country name is: '||v_country_name||' and is located in '||v_region_id||'.') ; EXCEPTIONWHEN TOO_MANY_ROWS THENDBMS_OUTPUT.PUT_LINE ('Your select statement retrieved multiple rows. Consider using a cursor.'); END;


四、子程序

(1)子程序
?命名為PL / SQL塊
?存儲(chǔ)在數(shù)據(jù)庫(kù)中

?可以根據(jù)您的應(yīng)用程序隨時(shí)調(diào)用

?可以聲明為程序或功能
- 過(guò)程:執(zhí)行操作
- 功能:計(jì)算并返回一個(gè)值

PROCEDURE name IS--variable declaration(s) BEGIN--statements [EXCEPTION] END; FUNCTION name RETURN datatype--variable declaration(s) IS BEGIN--statementsRETURN value; [EXCEPTION] END;(2)子程序的例子

打印當(dāng)前日期的過(guò)程

CREATE PROCEDURE print_date ISv_date VARCHAR2(30); BEGINSELECT TO_CHAR(SYSDATE,'Mon DD, YYYY')INTO v_dateFROM DUAL;DBMS_OUTPUT.PUT_LINE(v_date); END;

函數(shù)返回字符串中的字符數(shù)

CREATE PROCEDURE print_date ISv_date VARCHAR2(30); BEGINSELECT TO_CHAR(SYSDATE,'Mon DD, YYYY')INTO v_dateFROM DUAL;DBMS_OUTPUT.PUT_LINE(v_date); END; CREATE FUNCTION num_characters (p_string IN VARCHAR2)RETURN INTEGER ISv_num_characters INTEGER; BEGINSELECT LENGTH(p_string) INTO v_num_charactersFROM DUAL;RETURN v_num_characters; END;


五、程序構(gòu)造

下表概述了使用基本PL / SQL塊的各種不同的PL / SQL程序結(jié)構(gòu)。 這些構(gòu)造是基于它們被執(zhí)行的環(huán)境而提供的。



六、PL / SQL編程環(huán)境

有許多工具為環(huán)境提供了一個(gè)環(huán)境開(kāi)發(fā)PL / SQL。 Oracle提供了幾種工具可以使用。 一些Oracle開(kāi)發(fā)工具是:



七、Oracle Application Express

Oracle Application Express是一個(gè)基于瀏覽器的Web應(yīng)用程序環(huán)境,它提供了SQL Workshop組件。



八、使用SQL Workshop進(jìn)行開(kāi)發(fā)

當(dāng)您登錄到Oracle Application Express并選擇SQL Workshop時(shí),可以選擇使用SQL命令選項(xiàng)來(lái)使用SQL命令行編輯器,也可以選擇SQL腳本選項(xiàng)在腳本編輯器中工作。



九、SQL命令

您可以使用SQL命令輸入并運(yùn)行單個(gè)SQL語(yǔ)句或單個(gè)PL / SQL塊。 SQL腳本可以包含一個(gè)或多個(gè)SQL語(yǔ)句和/或PL / SQL塊。 使用SQL腳本輸入并運(yùn)行多語(yǔ)句腳本。



使用DBMS_OUTPUT.PUT_LINE示例
看看這個(gè)簡(jiǎn)單的PL / SQL塊和它的輸出。 你如何顯示結(jié)果?



使用DBMS_OUTPUT.PUT_LINE

讓我們添加一個(gè)對(duì)DBMS_OUTPUT.PUT_LINE的調(diào)用。 現(xiàn)在你可以看到結(jié)果!



DBMS_OUTPUT.PUT_LINE允許您顯示結(jié)果,以便您可以檢查您的塊是否正常工作。 它允許您一次顯示一個(gè)字符串,但可以將它們連接起來(lái)。

DECLAREv_emp_count NUMBER; BEGINDBMS_OUTPUT.PUT_LINE('PL/SQL is easy so far!');SELECT COUNT(*) INTO v_emp_count FROM employees;DBMS_OUTPUT.PUT_LINE('There are '||v_emp_count||'rows in the employees table'); END;


總結(jié)

以上是生活随笔為你收集整理的Oracle入门(十四.3)之创建PL / SQL块的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。