在Oracle PL/SQL中使用FOR LOOP迴圈的範例如下。
PL/SQL FOR LOOP迴圈語法
FOR index IN [REVERSE] lower_bound..upper_bound
LOOP
...statements...
END LOOP;
- index為迴圈的計數變數,預設從lower_bound開始算,每一次迴圈會往upper_bound遞增。
- lower_bound為index的起算值,必須是數值。
- upper_bound為index的結束值,必須是數值。
- lower_bound若等於upper_bound,則迴圈只會執行1次。
REVERSE
為選擇性,會使迴圈index計數順序相反,從upper_bound開始往lower_bound遞減。- 沒有
REVERSE
時,lower_bound若大於upper_bound,則迴圈不會執行。
範例一,一個簡單的FOR LOOP迴圈
DECLARE
x NUMBER := 10; -- 宣告一個變數x,設值為10
BEGIN
FOR i IN 1..10 LOOP -- 走訪10次的迴圈
DBMS_OUTPUT.PUT_LINE(x * i); -- 印出結果
END LOOP; -- 迴圈結束,記得加上分號結束
END;
在SQL Developer中執行結果如下
已順利完成 PL/SQL程序。
10
20
30
40
50
60
70
80
90
100
範例二,在IN
的後面加上REVERSE
則由迴圈計數的上限(upper_bound)開始往下限(lower_bound)倒著執行。
DECLARE
x NUMBER := 10; -- 宣告一個變數x,設值為10
BEGIN
FOR i IN REVERSE 1..10 LOOP -- 走訪10次的迴圈,加上REVERSE所以會i會從10開始數
DBMS_OUTPUT.PUT_LINE(x * i); -- 印出結果
END LOOP; -- 迴圈結束,記得加上分號結束
END;
在SQL Developer中執行結果如下
已順利完成 PL/SQL程序。
100
90
80
70
60
50
40
30
20
10
沒有留言:
張貼留言