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