ページの先頭行へ戻る
Symfoware Server V10.1.1 SQLリファレンス
Symfoware

5.10 WHENEVER文

機能

プロシジャルーチン内のSQL手続き文実行時に、例外事象が発生した場合にとる動作を指定します。

記述形式

構文の構成

参照項番

一般規則

条件(SQLERRORおよびNOT FOUND)
  • 条件にSQLERRORが指定されると、SQL手続き文の実行結果が正常終了、データなし、または警告のいずれでもない場合に、動作選択子が実行されます。

  • 条件にNOT FOUNDが指定されると、SQL手続き文の実行結果がデータなしの場合に、動作選択子が実行されます。

動作選択子(CONTINUEおよびGOTO)
  • 動作選択子にCONTINUEが指定されると、条件に指定された事象の発生したSQL手続き文の次を実行します。

  • 動作選択子にGOTO句が指定されると、指定した文ラベルに分岐します。

  • WHENEVER文が出現する以前に例外事象が発生した場合、CONTINUEが指定されたものとみなされます。

文ラベル
  • 文ラベルは、SQL手続き文の開始ラベルまたは、分岐先文の文ラベルを指定します。

  • 文ラベルには、36文字以内の先頭が英字で始まる英数字、または18文字以内の日本語文字列を指定します。

使用例

WHENEVER文を指定します。

    WHENEVER SQLERROR GOTO エラー1;
ラベル1: LOOP
    FETCH CSR1 INTO 製品番号,製品名,在庫数量,倉庫番号;
    IF 在庫数量 <= 500 THEN
       SET 数量 = 500 - 在庫数量;
                :
    END IF;
END LOOP;
エラー1: