|
SIGNAL ステートメントを使って、例外または正常終了以外の終了条件を通知することができます。
SQLSTATE 値を通知すると、SQLSTATE が特定の値に設定されます。その後、この値はユーザーに返されるか、呼び出し元プロシージャで SQLSTATE 値を介して使用できるようになります。この値は、プロシージャを呼び出しているアプリケーションで使用できます。
SQLSTATE 値と一緒にエラー メッセージを指定することもできます。
メモ
SIGNAL はストアド プロシージャまたはユーザー定義関数の内部でのみ使用できます。
次の例では、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()
|