控制結構
控制結構控制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,則結束循環。
X:=100; WHILE X<=1000 LOOP X:=X+10; END LOOP; Y=X; |
FOR...LOOP 語法:
FOR counter IN [REVERSE] start_range....end_range LOOP statements; END LOOP; |
LOOP和WHILE循環的循環次數都是不確定的,FOR循環的循環次數是固定的,counter是一個隱式聲明的變量,他的初始值是start_range,第二個值是start_range+1,直到end_range,如果start_range等于end _range,那么循環將執行一次。如果使用了REVERSE關鍵字,那么范圍將是一個降序。
X:=100; FOR v_counter in 1..10 loop x:=x+10;
end loop y:=x; |
如果要退出for循環可以使用EXIT語句。
標簽 用戶可以使用標簽使程序獲得更好的可讀性。程序塊或循環都可以被標記。標簽的形式是<