前言
享受自由。
PL /SQL是一種進階資料庫程式設計語言,該語言專門用于在各種環境下對ORACLE資料庫進行通路。由于該語言內建于資料庫伺服器中,是以PL/SQL代碼可以對資料進行快速高效的處理。除此之外,可以在ORACLE資料庫的某些用戶端工具中,使用PL/SQL語言也是該語言的一個特點。
PL/SQL塊結構群組成元素
PL/SQL塊
PL/SQL程式由三個塊組成,即聲明部分、執行部分、異常處理部分。
PL/SQL塊的結構如下:
/* 聲明部分: 在此聲明PL/SQL用到的變量,類型及遊标,以及局部的存儲過程和函數 * /
BEGIN
/* 執行部分: 過程及SQL 語句 , 即程式的主要部分 * /
EXCEPTION
/* 執行異常部分: 錯誤處理 */
END;
其中 執行部分是必須的。
記錄類型文法
定義如下:
TYPE record_type IS RECORD(
Field1 type1 [NOT NULL] [:= exp1 ],
Field2 type2 [NOT NULL] [:= exp2 ],
. . . . . .
Fieldn typen [NOT NULL] [:= expn ] ) ;
例:
螢幕快照 2018-01-14 00.35.23.png![]()
PL/SQL基礎文法
或:
螢幕快照 2018-01-14 00.36.49.png![]()
PL/SQL基礎文法
提示
- DBMS_OUTPUT.PUT_LINE 過程的功能類似于 Java 中的 System.out.println() 直接将輸出結果送到标準輸出中.
- 在使用上述過程之前必須将 SQL * PLUS 的環境參數 SERVEROUTPUT 設定為 ON, 否則将看不到輸出結果: set serveroutput on
使用%TYPE文法
定義一個變量,其資料類型與已經定義的某個資料變量的類型相同,或者與資料庫表的某個列的資料類型相同,這時可以使用%TYPE。
使用%TYPE特性的優點在于:
- 所引用的資料庫列的資料類型可以不必知道;
- 所引用的資料庫列的資料類型可以實時改變;
螢幕快照 2018-01-14 00.39.28.png![]()
PL/SQL基礎文法
使用%ROWTYPE文法
PL/SQL 提供%ROWTYPE操作符, 傳回一個記錄類型, 其資料類型和資料庫表的資料結構相一緻。
使用%ROWTYPE特性的優點在于:
- 所引用的資料庫中列的個數和資料類型可以不必知道;
- 引用的資料庫中列的個數和資料類型可以實時改變。
螢幕快照 2018-01-14 00.41.23.png![]()
PL/SQL基礎文法
流程控制文法
介紹PL/SQL的流程控制語句, 包括如下三類:
- 控制語句: IF 語句
- 循環語句: LOOP語句, EXIT語句
- 順序語句: GOTO語句, NULL語句
條件語句
IF表達式
IF <布爾表達式> THEN
PL/SQL 和 SQL語句
END IF;
ELSE
其它語句
ELSIF < 其它布爾表達式> THEN
case表達式
CASE selector
WHEN expression1 THEN result1
WHEN expression2 THEN result2
。。。。
WHEN expressionN THEN resultN
[ ELSE resultN+1]
循環語句
簡單循環
LOOP
要執行的語句;
EXIT WHEN <條件語句> /* 條件滿足,退出循環語句*/
END LOOP;
while循環
WHILE <布爾表達式> LOOP
for循環
FOR 循環計數器 IN [ REVERSE ] 下限 .. 上限 LOOP
标号和GOTO
PL/SQL中GOTO語句是無條件跳轉到指定的标号去的意思。文法如下:
GOTO label;
. . . . . .
<<label>> /*标号是用<< >>括起來的辨別符 */
一般不用,容易打亂程式的結構。