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()
関連項目