目錄
15.1. PL/SQL 塊
是在 SQL 語言之上發展起來的一種應用,可以集中的處理各種複雜的 SQL 操作。組成:
DECLARE:
聲明部分
BEGIN
編寫主題
EXCEPTION
捕獲異常
END ;
圖一
圖二
15.2. Loop 循環(do…while)
PL/SQL 之中也包含了:循環、分支等條件控制語句
Loop 循環(do…while) 格式:
LOOP 循環的語句;
EXITWHEN終止條件;
循環條件必須更改;
END LOOP ;
循環輸出 1~10。
DECLARE cou NUMBER ;
BEGIN --必須給一個初始值
cou := 1 ;
LOOP
DBMS_OUTPUT.put_line('cou = '||cou) ;
EXIT WHEN cou>10 ;
cou:= cou + 1 ;
END LOOP ;
END ; -- 此循環是先執行一次之後再進行判斷
15.3. while 循環
格式:
while(判斷循環的條件)
loop 循環的語句;
循環條件的改變;
Endloop ;
使用此語句修改上面的程序:
DECLARE cou NUMBER ;
BEGIN
-- 必須給一個初始值
cou:= 1 ;
WHILE(cou<10)
LOOP DBMS_OUTPUT.put_line('cou = '||cou) ;
cou:= cou + 1 ;
END LOOP ;
END ; / 此語句,是先判斷,之後如果條件滿足則執行,與 while 循環類似。
15.4. for 循環
格式:
FOR變量名稱 in 變量的初始值..結束值
LOOP 循環語句;
END LOOP ;
DECLARE cou NUMBER ;
BEGIN
FOR cou IN 1..10
LOOP DBMS_OUTPUT.put_line('cou = '||cou) ;
END LOOP ;
END ;
15.5. IF 語句
條件判斷格式:
IF條件THEN
滿足條件時,執行此語句
END IF ;
DECLARE cou NUMBER ;
BEGIN cou := 11 ;
IF cou>10 THEN
DBMS_OUTPUT.put_line('cou = '||cou) ;
END IF ;
END ;
15.6. IF…ELSE 語句
如果 IF 滿足了,則執行,否則執行ELSE
DECLARE cou NUMBER ;
BEGIN cou := 1 ;
IF cou>10 THEN
DBMS_OUTPUT.put_line('cou = '||cou) ;
ELSE
DBMS_OUTPUT.put_line('條件不滿足') ;
END IF ;
END ;
15.7. IF…ELSE…IF…ELSE 語句
DECLARE
cou NUMBER ;
BEGIN cou := 1 ;
IFcou>10 THEN
DBMS_OUTPUT.put_line('cou = '||cou) ;
ELSIF cou<5 THEN
DBMS_OUTPUT.put_line('值小於5') ;
ELSE DBMS_OUTPUT.put_line('條件不滿足') ;
ENDIF ; END ;
15.8. GOTO 語句
無條件跳轉語句
DECLARE eno emp.empno%TYPE ;
salemp.sal%TYPE ;
BEGIN
eno:= &en ;
SELECT sal INTO sal FROM emp WHERE empno=eno;
IFsal>3500 THEN
goto po1 ;
ELSIF
sal>2000 THEN
gotopo2 ;
ELSE goto po3 ;
END IF ;
<> DBMS_OUTPUT.put_line('高工資。。。') ;
<> DBMS_OUTPUT.put_line('中等工資。。') ;
<> DBMS_OUTPUT.put_line('底工資。。。') ;
END ;