SQL 解説書

SIGNAL SQLSTATE

SIGNAL SQLSTATE ステートメントは、エラーをシグナルするのに使用されます。 指定した SQLSTATE と、 指定した diagnostic-string (診断ストリング) で戻されるエラーを生じさせます。

呼び出し

SIGNAL SQLSTATE ステートメントは、 トリガー内の起動された SQL ステートメントとしてのみ使用できます。

許可

このステートメントの実行には、特に権限は必要ありません。

構文

>>-SIGNAL--SQLSTATE--string-constant---(--diagnostic-string--)--><
 

説明

string-constant
指定する string-constant (ストリング定数) は、SQLSTATE を表します。 この定数は、正確に 5 文字の文字ストリング定数でなければならず、 以下のアプリケーション定義の SQLSTATE の規則に基づいていなければなりません。

SQLSTATE がこれらの規則に従っていない場合には、エラーになります (SQLSTATE 428B3)。

diagnostic-string
エラー条件について説明する最高 70 バイトの文字ストリングを戻すタイプ CHAR または VARCHAR の式です。 ストリングが 70 バイトを超える場合には切り捨てられます。

PARTS 表に十分な在庫がある場合にのみ、ORDERS 表 (ORDERNO、 CUSTNO、 PARTNO、 QUANTITY) に受注を記録する受注システムを想定します。

  CREATE TRIGGER check_avail
        NO CASCADE BEFORE INSERT ON orders
        REFERENCING NEW AS new_order
        FOR EACH ROW MODE DB2SQL
        WHEN (new_order.quantity > (SELECT on_hand FROM parts
                                    WHERE new_order.partno=parts.partno))
          BEGIN ATOMIC
            SIGNAL SQLSTATE '75001' ('Insufficient stock for order');
          END


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]