スケーラブルデータベースサーバ HiRDB Version 8 SQLリファレンス
機能
エラーを発生させ,通知します。このとき,診断領域に診断情報を追加します。
形式
RESIGNAL 〔信号値〕 信号値::={SQLSTATE値|条件名} SQLSTATE値::=SQLSTATE 〔VALUE〕 文字列定数 |
オペランド
UAPに返す値を指定します。
SQLSTATE値として有効な値(A〜Zの大文字,及び0〜9の数字の組み合わせ)を5文字で指定してください。ただし,次のHiRDBでのSQLSTATEの規則に従って値を指定してください。
SQLSTATEクラスがこれらの規則に従っていない場合,定義時にエラーとなります。SQLSTATE値のについては,「6. SQLSTATE変数」を参照してください。
条件宣言で宣言した条件名を指定してください。
条件名を指定した場合,SQLSTATEにはエラーを示す'R0000'(異常終了で暗黙的ロールバックなし)が設定されます。
条件名に対応したSQLCODE値を定義している場合,エラーとなります。
共通規則
留意事項
使用例
在庫表(ZAIKO)に対し,指定した商品コードの数量を更新するSQL手続き(ZAIKO_KOUSIN2)を定義します。指定した数量が0未満の値の場合,一致する商品がなかった場合,又は更新に失敗した場合に,RESIGNAL文でエラーを発生させ,それぞれのSQLSTATE値を設定します。
CREATE PROCEDURE ZAIKO_KOUSIN2(IN USCODE INT,IN USURYO INT) BEGIN DECLARE illegal_value CONDITION ; DECLARE EXIT HANDLER FOR illegal_value RESIGNAL SQLSTATE VALUE '66001'; DECLARE EXIT HANDLER FOR NOT FOUND SIGNAL SQLSTATE VALUE '66002'; DECLARE EXIT HANDLER FOR SQLERROR RESIGNAL SQLSTATE VALUE '66003'; IF USURYO<0 THEN SIGNAL illegal_value; ELSE UPDATE ZAIKO SET ZSURYO=USURYO WHERE ZSCODE=USCODE; END IF; END
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.