SQL 構文リファレンス : SIGNAL
 
このページをシェアする                  
SIGNAL
備考
SIGNAL ステートメントを使って、例外状態や正常終了以外の終了状態を通知することができます。
SQLSTATE 値を通知すると、SQLSTATE が特定の値に設定されます。その後、この値はユーザーに返されるか、呼び出し元プロシージャで SQLSTATE 値を介して使用できるようになります。この値は、プロシージャを呼び出しているアプリケーションで使用できます。
SQLSTATE 値と一緒にエラー メッセージを指定することもできます。
メモ:SIGNAL はストアド プロシージャまたはユーザー定義関数の内部でのみ使用できます。
構文
SIGNAL SQLSTATE 値[, エラー メッセージ]
 
SQLSTATE 値 ::= ユーザー定義値
 
エラー メッセージ ::= ユーザー定義メッセージ
次の例では、SQLSTATE の初期値 00000 を出力し、通知された後に "SQLSTATE 例外が見つかりました" を出力します。最後に出力される SQLSTATE は W9001 になります。
CREATE PROCEDURE GenerateSignal();
BEGIN
  SIGNAL 'W9001';
END;
 
CREATE PROCEDURE TestSignal() WITH DEFAULT HANDLER;
BEGIN
  PRINT SQLSTATE;
  CALL GenerateSignal();
  IF SQLSTATE <> '00000' THEN
  PRINT 'SQLSTATE 例外が見つかりました';
  END IF;
  PRINT SQLSTATE;
END;
============ 
CREATE PROCEDURE GenerateSignalWithErrorMsg();
BEGIN
  SIGNAL 'W9001', '構文が不正です;
END;
CALL GenerateSignalWithErrorMsg()
関連項目
CREATE PROCEDURE