PL/SQL學習筆記(五)
編寫控製結構:順序結構,條件結構,循環結構
一。條件語句:
1。與delphi或者java,或者其他任何語言的條件語句基本一樣咯:
單條件:
IF condition THEN
......
END IF;
雙條件:
IF condition THEN
......
ELSE
...
END IF;
多條件:
IF condition THEN
...
ELSEIF conditon THEN
....
ELSEIF conditon THEN
....
ELSE
....
END IF;
舉例:
DECLARE
v_sal NUMBER ( 6 , 2 );
v_id NUMBER ;
BEGIN
v_id: = ' &id ' ;
SELECT salary into v_sal FROM employee
WHERE id = v_id;
IF v_sal < 4000 THEN
update employee set salary = (v_sal + 100 ) where id = v_id;
ELSE
update employee set salary = (v_sal - 900 ) where id = v_id;
END IF ;
END ;
二。CASE語句:
各種語言的switch ...case語句相同,隻不過沒有switch關鍵字。
1。使用單一選擇符進行比較:
CASE selector
WHEN expression1 THEN
;
WHEN expression 2 THEN
;

END CASE;
2。多種條件比較:
CASE 
WHEN condition1 THEN
;
WHEN condition2 THEN
;
WHEN condition3 THEN
;
END CASE;

(三)循環語句:
3種循環:
1。基本循環,至少執行一次:
LOOP
statement1;
...
EXIT WHEN 退出循環條件;
END LOOP1;
例如:
LOOP
insert into employee(id,name) values (i, ' dennis ' );
i: = i + 1 ;
EXIT WHEN i > 10 ;
END LOOP;
2。while循環:
WHILE conditon1 LOOP
statement1;
...
END LOOP;
比如上麵的例子改寫為:
WHILE i <= 10 LOOP
insert into employee(id,name) values (i, ' dennis ' ); 
i: = i + 1 ;
END LOOP;
3。FOR循環,類似於ruby的FOR循環:
FOR counter IN [REVERSE] 下限..上限 LOOP
statement1;
...
END LOOP;
REVERSE參數可選,有的話表示從上限往下限遞減。
(四)順序控製語句
PL/SQL也提供了GOTO和NULL語句用於控製語句執行順序,GOTO語句與JAVA的機製相似,通過label來實現跳轉,盡量不要使用。NULL語句不會執行任何操作,它的存在主要是為了提高程序的可讀性。
文章轉自莊周夢蝶 ,原文發布時間2007 2 11
最後更新:2017-05-17 14:31:34