SQL Engine Reference (v11)

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; 
666
CREATE PROCEDURE GenerateSignalWithErrorMsg();  
BEGIN  
  SIGNAL 'W9001', '構文が不正です;  
END;  
CALL GenerateSignalWithErrorMsg() 

関連項目

CREATE PROCEDURE


SET

SQLSTATE