作為一門面向過程的編程語言,PL/SQL中肯定少不了邏輯控制語句.
一、條件控制語句
1、IF條件控制語句
和其它編程語言一樣,PL/SQL中的IF條件控制語句也有三種形式。
形式1:
IF condition THEN
statements;
END IF;
形式2:
IF condition THEN
statements;
ELSE
statements;
END IF;
形式3:
IF condition THEN
statements;
ELSIF condition THEN
statements;
ELSE
statements;
END IF;
2、CASE條件控制語句
簡單case語句
[ <<label_name>> ]
CASE case_expr --這是一個變量或者表達(dá)式
WHEN case_value1 THEN
statement;
WHEN case_value2 THEN
statement;
ELSE --當(dāng)所有value都不匹配時執(zhí)行,可省略
statment;
END CASE [label_name];
搜索式case語句
[ <<label_name>> ]
CASE --這里沒有表達(dá)式
WHEN boolean_expr1 THEN
statement;
WHEN boolean_expr2 THEN
statement;
ELSE --當(dāng)所有 boolean_expr都不成立時執(zhí)行,可省略
statment;
END CASE [label_name];
二、LOOP循環(huán)控制語句
在PL/SQL中重復(fù)執(zhí)行一條語句或一組語句,可以使用循環(huán)控制結(jié)構(gòu),PL/SQL中循環(huán)結(jié)構(gòu)有下面4種形式:
1)基本循環(huán)結(jié)構(gòu)
2)WHILE ... LOOP
3)FOR 循環(huán)
4)CURSOR FOR LOOP:在游標(biāo)中介紹
1、基本循環(huán)結(jié)構(gòu)
LOOP --循環(huán)開始標(biāo)志
statement; --循環(huán)體
END LOOP; --循環(huán)結(jié)束標(biāo)志
示例1:
declare
i number(10);
begin
i := 1;
LOOP
DBMS_OUTPUT.PUT_LINE('i值為:' || i);
EXIT WHEN i >= 10;
i := i+1;
END LOOP;
end;
/
示例2:
declare
i number(10);
begin
i := 1;
LOOP
DBMS_OUTPUT.PUT_LINE('i值為:' || i);
IF i >= 10 THEN
EXIT;
END IF;
i := i+1;
END LOOP;
end;
/
基本循環(huán)結(jié)構(gòu)需要搭配 EXIT 退出循環(huán),否則會一直執(zhí)行下去.
2、WHILE ... LOOP
該循環(huán)結(jié)構(gòu)本身可以終止循環(huán),當(dāng) WHILE 后面 布爾表達(dá)式 為 true 時,循環(huán)體將會執(zhí)行一次,然后重新判斷 布爾表達(dá)式 是否為 true,直到為 false 時,退出循環(huán).
WHILE boolean_expr --布爾表達(dá)式
LOOP
statement; --循環(huán)體
END LOOP;
示例:
declare
i number(10);
begin
i := 1;
WHILE i <= 10
LOOP
DBMS_OUTPUT.PUT_LINE('i值為:' || i);
i := i+1;
END LOOP;
end;
/
3、FOR 循環(huán)
FOR index IN [REVERSE] --index:循環(huán)次數(shù) REVERSE:循環(huán)方式,默認(rèn)從下邊界到上邊界,使用之后剛好相反
lower_bound .. upper_bound --分別對應(yīng)FOR循環(huán)的下邊界、上邊界,用..連接
LOOP
statment; --循環(huán)體
END LOOP;
示例:
begin
FOR i IN 1..10
LOOP
DBMS_OUTPUT.PUT_LINE('i:' || i);
END LOOP;
end;
/
當(dāng)lower_bound與upper_bound相等時,循環(huán)只執(zhí)行一次,同時,這兩者也可以用變量來代替,動態(tài)控制循環(huán)范圍.
四、順序控制語句
PL/SQL中一般都是從前到后的順序執(zhí)行,同時也可以使用 GOTO、NULL 來控制順序.
GOTO:跳轉(zhuǎn)到特定處執(zhí)行隨后的語句.
NULL:不會執(zhí)行任何操作.