二重ループを抜けるには、ラベルを使うと便利です。
構文
- (ラベル構文)
- <<ラベル名>>
ラベル名を「<<」と「>>」で囲えばOKです。
サンプル
例)二重ループを抜ける
1 2 3 4 5 6 7 8 9 10 |
BEGIN <<LP1>> --ラベル FOR i IN 1..5 LOOP --第1ループ FOR j IN 1..3 LOOP --第2ループ EXIT LP1 WHEN(i=3); --第1ループが3の場合全てのループを抜ける DBMS_OUTPUT.PUT_LINE(i || '-' || j); --INDEX番号を表示 END LOOP; END LOOP; END; / |
- 実行例
- SQL> / 1-1 1-2 1-3 2-1 2-2 2-3 PL/SQLプロシージャは正常に完了しました。
DBMS_OUTPUT.PUT_LINEでコンソールに出力するには、事前に「set serveroutput on」コマンドを実行しておく必要があります。
解説
- LOOPの直前にラベルを設置して、抜けたい箇所で「EXIT <ラベル名>」とすればループを抜けることができます。