PL/SQL是一種塊結(jié)構(gòu)的語(yǔ)言,這意味著PL/SQL程序被劃分和編寫代碼的邏輯塊。每塊由三個(gè)子部分組成:
S.N. | 段和說(shuō)明 |
---|---|
1 |
聲明 此部分開頭使用關(guān)鍵字DECLARE。它是一個(gè)可選的部分,并限定在該程序中使用的所有變量,游標(biāo),子程序,和其他元素。 |
2 |
可執(zhí)行命令 此部分是封閉關(guān)鍵字BEGIN和END,這是一個(gè)強(qiáng)制性的部分。它由程序的可執(zhí)行文件的PL/SQL語(yǔ)句。它應(yīng)具有至少一個(gè)可執(zhí)行的代碼行,這可能僅僅是一個(gè)空命令,以指示什么都不執(zhí)行。 |
3 |
異常處理 此部分開頭使用關(guān)鍵字EXCEPTION。此部分又是可選的,含有異常,在程序處理錯(cuò)誤中。 |
每一個(gè)PL/SQL語(yǔ)句都以分號(hào)(;)結(jié)束??汕短自谑褂肂EGIN和END等PL/SQL塊PL/SQL塊。這里是一個(gè)PL/SQL塊的基本結(jié)構(gòu):
DECLARE <declarations section> BEGIN <executable command(s)> EXCEPTION <exception handling> END;
DECLARE message varchar2(20):= 'Hello, World!'; BEGIN dbms_output.put_line(message); END; /
end; 行信號(hào)是PL/SQL塊的末端。要運(yùn)行SQL命令行代碼,則可能需要代碼的最后一行前,輸入在第一個(gè)空行的開頭。當(dāng)上述代碼在SQL提示符執(zhí)行時(shí),它產(chǎn)生了以下結(jié)果:
Hello World PL/SQL procedure successfully completed.
PL/SQL標(biāo)識(shí)符是常量,變量,異常,過(guò)程,游標(biāo)和保留字。標(biāo)識(shí)符是由一個(gè)字母后面可以跟更多的字母,數(shù)字,美元符號(hào),下劃線和數(shù)字符號(hào),并且不得超過(guò)30個(gè)字符。
默認(rèn)情況下,標(biāo)識(shí)符不區(qū)分大小寫。所以,可以使用 integer 或 INTEGER 表示數(shù)值。不能使用保留關(guān)鍵字作為標(biāo)識(shí)符。
分隔符是一個(gè)具有特殊意義的符號(hào)。以下是在PL/SQL分隔符的列表:
分隔符 | 描述 |
---|---|
+, -, *, / | 加法,減法/否定,乘法,除法 |
% | 屬性索引 |
' | 字符串分隔符 |
. | 組件選擇 |
(,) | 表達(dá)式或列表分隔符 |
: | 主機(jī)變量指示符 |
, | 項(xiàng)目分離符 |
" | 帶引號(hào)的標(biāo)識(shí)符分隔符 |
= | 關(guān)系運(yùn)算符 |
@ | 遠(yuǎn)程訪問(wèn)指示符 |
; | 聲明終止符 |
:= | 賦值運(yùn)算符 |
=> | 操作符關(guān)聯(lián) |
|| | 連接運(yùn)算符 |
** | 乘方運(yùn)算符 |
<<, >> | 標(biāo)簽分隔符(開始和結(jié)束) |
/*, */ | 多行注釋分隔符(開始和結(jié)束) |
-- | 單行注釋指示符 |
.. | 范圍操作 |
<, >, <=, >= | 關(guān)系運(yùn)算符 |
<>, '=, ~=, ^= | 不同版本的不相等的 |
程序注釋是解釋性說(shuō)明,可以包括自己編寫的,并幫助任何人閱讀源代碼的PL/SQL代碼。所有的編程語(yǔ)言允許某種形式的注釋。
在PL/SQL支持單行和多行注釋。任何注釋里面所有字符都會(huì)被PL/SQL編譯器忽略。在PL/SQL單行注釋使用分隔符 - (雙連字符)和多行注釋被 /* 和 */ 括起來(lái)。
DECLARE -- variable declaration message varchar2(20):= 'Hello, World!'; BEGIN /* * PL/SQL executable statement(s) */ dbms_output.put_line(message); END; /
當(dāng)上述代碼在SQL提示符執(zhí)行時(shí),它產(chǎn)生了以下結(jié)果:
Hello World PL/SQL procedure successfully completed.
PL/SQL單元是下列任何一個(gè):
PL/SQL 塊
函數(shù)
包
包體
過(guò)程
觸發(fā)器
類型
類型體
這些單元都將在即將到來(lái)的章節(jié)中學(xué)習(xí)討論。