Plsql-exit-statement

提供:Dev Guides
移動先:案内検索

PL/SQL-EXITステートメント

PL/SQLプログラミング言語の EXIT ステートメントには、次の2つの使用法があります-

  • ループ内でEXITステートメントが検出されると、ループはすぐに終了し、プログラム制御はループの次のステートメントから再開します。
  • ネストされたループ(つまり、あるループが別のループ内にある)を使用している場合、EXITステートメントは最も内側のループの実行を停止し、ブロックの後のコードの次の行の実行を開始します。

構文

PL/SQLのEXIT文の構文は次のとおりです-

EXIT;

流れ図

PL/SQL exitステートメント

DECLARE
   a number(2) := 10;
BEGIN
   -- while loop execution
   WHILE a < 20 LOOP
      dbms_output.put_line ('value of a: ' || a);
      a := a + 1;
      IF a > 15 THEN
         -- terminate the loop using the exit statement
         EXIT;
      END IF;
   END LOOP;
END;
/

上記のコードがSQLプロンプトで実行されると、次の結果が生成されます-

value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15

PL/SQL procedure successfully completed.

EXIT WHENステートメント

*EXIT-WHEN* ステートメントを使用すると、WHEN句の条件を評価できます。 条件が真の場合、ループが完了し、END LOOPの直後に制御がステートメントに渡されます。

以下は、EXIT WHENステートメントの2つの重要な側面です-

  • 条件が真になるまで、EXIT-WHENステートメントは、条件の評価を除いてNULLステートメントのように機能し、ループを終了しません。 *ループ内のステートメントは、条件の値を変更する必要があります。

構文

PL/SQLのEXIT WHEN文の構文は次のとおりです-

EXIT WHEN condition;

EXIT WHENステートメントは、EXITステートメントで使用されるif-then* などの条件ステートメントを置き換えます。

DECLARE
   a number(2) := 10;
BEGIN
   -- while loop execution
   WHILE a < 20 LOOP
      dbms_output.put_line ('value of a: ' || a);
      a := a + 1;
      -- terminate the loop using the exit when statement
   EXIT WHEN a > 15;
   END LOOP;
END;
/

上記のコードがSQLプロンプトで実行されると、次の結果が生成されます-

value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15

PL/SQL procedure successfully completed.