控制結構
控制結構控制PL/SQL程序流程的代碼行,PL/SQL支持條件控制和循環控制結構。
語法和用途
IF..THEN
語法:
IF condition THEN
Statements 1;
Statements 2;
....
END IF
IF語句判斷條件condition是否為TRUE,如果是,則執行THEN後面的語句,如果condition為false或NULL則跳過THEN到END IF之間的語句,執行END IF後面的語句。
IF..THEN...ELSE
語法:
IF condition THEN
Statements 1;
Statements 2;
....
ELSE
Statements 1;
Statements 2;
....
END IF
如果條件condition為TRUE,則執行THEN到ELSE之間的語句,否則執行ELSE到END IF之間的語句。
IF 可以嵌套,可以在IF 或IF ..ELSE語句中使用IF或IF..ELSE語句。
if (a>b) and (a>c) then
g:=a;
else
g:=b;
if c>g then
g:=c;
end if
end if
IF..THEN..ELSIF
語法:
IF condition1 THEN
statement1;
ELSIF condition2 THEN
statement2;
ELSIF condition3 THEN
statement3;
ELSE
statement4;
END IF;
statement5;
如果條件condition1為TRUE則執行statement1,然後執行statement5,否則判斷condition2是否為TRUE,若為TRUE則執行statement2,然後執行statement5,對於condition3也是相同的,如果condition1,condition2,condition3都不成立,那麼將執行statement4,然後執行statement5。
循環控制
循環控制的基本形式是LOOP語句,LOOP和END LOOP之間的語句將無限次的執行。LOOP語句的語法如下:
LOOP
statements;
END LOOP
LOOP和END LOOP之間的語句無限次的執行顯然是不行的,那麼在使用LOOP語句時必須使用EXIT語句,強制循環結束,例如:
X:=100;
LOOP
X:=X+10;
IF X>1000 THEN
EXIT;
END IF
END LOOP;
Y:=X;
此時Y的值是1010.
EXIT WHEN語句將結束循環,如果條件為TRUE,則結束循環。
X:=100;
LOOP
X:=X+10;
EXIT WHEN X>1000;
X:=X+10;
END LOOP;
Y:=X;
WHILE..LOOP
WHILE..LOOP有一個條件與循環相聯系,如果條件為TRUE,則執行循環體內的語句,如果結果為FALSE,則結束循環。