Oracle的基本迴圈Basic LOOP範例如下
DECLARE
c NUMBER := 0; -- 計算迴圈執行次數的變數
BEGIN
LOOP
DBMS_OUTPUT.PUT_LINE(c);
c := c + 1; -- 每執行一次迴圈c的值就加1
IF c > 5 THEN -- 當c大於5時離開迴圈
EXIT; --EXIT用來離開迴圈
END IF;
END LOOP;
DBMS_OUTPUT.PUT_LINE('LOOP迴圈執行結束');
END;
執行結果
0
1
2
3
4
5
LOOP迴圈執行結束
EXIT
時的條件也可改用EXIT WHEN
。
DECLARE
c NUMBER := 0;
BEGIN
LOOP
DBMS_OUTPUT.PUT_LINE(c);
c := c + 1;
EXIT WHEN c > 5;
END LOOP;
DBMS_OUTPUT.PUT_LINE('LOOP迴圈執行結束');
END;
當然也可以有第二層迴圈,參考下面範例
DECLARE
x NUMBER := 0;
y NUMBER := 0;
BEGIN
LOOP -- 第一層迴圈
DBMS_OUTPUT.PUT_LINE('x:' || x);
y := 0;
LOOP -- 第二層迴圈
DBMS_OUTPUT.PUT_LINE('y:' || y);
y := y + 2;
EXIT WHEN y > 4;
END LOOP;
x := x + 1;
EXIT WHEN x > 2;
END LOOP;
END;
執行結果
x:0
y:0
y:2
y:4
x:1
y:0
y:2
y:4
x:2
y:0
y:2
y:4
使用CONTINUE
:
DECLARE
x NUMBER := 0;
BEGIN
LOOP
x := x + 1;
CONTINUE WHEN MOD(x , 2) = 1; -- MOD函數計算餘數,相當於x % 2。當x除以2餘數等於1時回到迴圈的開頭執行
EXIT WHEN x > 10;
DBMS_OUTPUT.PUT_LINE('x:' || x);
END LOOP;
END;
執行結果
x:2
x:4
x:6
x:8
x:10
沒有留言:
張貼留言