EXIT¶
EXIT [ WHEN <expression> ];
最も内側のループが終了し、 END LOOP に続くステートメントが次に実行されます。
WHEN が存在する場合、指定された条件が TRUE の場合にのみループ終了が発生し、そうでない場合は EXIT の後のステートメントに制御が渡されます。
EXIT を使用すると、すべてのタイプのループを早期に終了できます。無条件ループでの使用に限定されません。
以下は、10回反復し、 EXIT ステートメントを使用して終了するループの簡単な例です。
DECLARE
v_counter NUMBER(2);
BEGIN
v_counter := 1;
LOOP
EXIT WHEN v_counter > 10;
DBMS_OUTPUT.PUT_LINE('Iteration # ' || v_counter);
v_counter := v_counter + 1;
END LOOP;
END;
以下は、このプログラムからの出力です。
Iteration # 1
Iteration # 2
Iteration # 3
Iteration # 4
Iteration # 5
Iteration # 6
Iteration # 7
Iteration # 8
Iteration # 9
Iteration # 10