ループ処理中にカレント処理をスキップして次のループ処理を行うには、
CONTINUEを使用します。
サンプル
以下2つの例は同じ動きをします。
例1)5回ループ中、3回目のみスキップする
1 2 3 4 5 6 7 8 9 10 |
BEGIN FOR x IN 1..5 LOOP IF x = 3 THEN CONTINUE; END IF; DBMS_OUTPUT.PUT_LINE(x); END LOOP; END; |
例2)5回ループ中、3回目のみスキップする
1 2 3 4 5 6 7 8 |
BEGIN FOR x IN 1..5 LOOP CONTINUE WHEN(x=3); DBMS_OUTPUT.PUT_LINE(x); END LOOP; END; |
- 結果
- SQL> / 1 2 4 5 PL/SQLプロシージャが正常に完了しました。 SQL>
DBMS_OUTPUT.PUT_LINEでコンソールに文字を出力するには「set serveroutput on」を実行しておく必要があります。
解説
- CONTINEを使うと、該当ループ処理のみスキップすることができます。
- Oracle11g以降で使用できます。(Oracle10g以前では使用できません。)