機能
例外条件を送信します。
記述形式

構文の構成

一般規則
SIGNAL文を実行すると、例外条件が発生し、指定されたSQLSTATE値や例外メッセージがプロシジャルーチン内のSQL変数SQLSTATEおよびSQLMSGに設定されます。
SIGNAL文に指定するSQLSTATE値は、例外コードに60を指定する必要があります。副例外コードは0~9およびA~Zまでの任意の文字を3桁で指定します。不当な値を指定した場合、定義エラーになります。
SIGNAL文に条件名を指定する場合、例外コードが60および副例外コードが0~9およびA~Zまでの任意の文字3桁で表現されたSQLSTATE値を定義した条件名を指定する必要があります。その他のSQLSTATE値を定義した条件名を指定した場合、定義エラーになります。
例外メッセージは文字列型で指定します。長さは最大256バイトまでが有効となります。それ以上の長さを指定した場合、切り捨てられます。
使用例
SIGNAL文を利用して、ユーザが任意に例外を発生する例を以下に示します。
CREATE PROCEDURE S1.在庫チェック(IN 在庫数パラ INT)
BEGIN
DECLARE SQLSTATE CHAR(5);
DECLARE SQLMSG CHAR(256);
DECLARE ユーザ定義例外1 CONDITION FOR SQLSTATE'60001';
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
RESIGNAL; -- 呼出し元に発生例外を通知する
END;
-- ルーチン本体の処理
IF (在庫数パラ < 0) THEN
SIGNAL ユーザ定義例外1 '在庫数が不当です';
END IF;
END