SQL 解説書

RAISE_ERROR

>>-RAISE_ERROR--(--sqlstate--,--diagnostic-string--)-----------><
 

スキーマは SYSIBM です。

RAISE_ERROR 関数は、この関数を含むステートメントが、指定した SQLSTATE、 SQLCODE -438、および diagnostic-string のエラーを戻すようにします。 RAISE_ERROR 関数は、未定義データ・タイプでは常に NULL を戻します。

sqlstate
厳密に 5 文字の文字ストリング。 これは、長さ 5 として定義された CHAR タイプ、 または長さ 5 以上として定義された VARCHAR タイプでなければなりません。 sqlstate の値は、次のように、 アプリケーション定義の SQLSTATE の規則に従っていなければなりません。

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

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

この関数を、 結果データ・タイプの規則が適用されない文脈 (選択リストで単独の場合など) で使用するには、 Cast 指定を使用して、データ・タイプにヌル値の戻される値を割り当てる必要があります。 CASE 式は、RAISE_ERROR 関数を使う最適の場所といえます。

例:

従業員番号と学歴のリストを、学歴を Post Graduate、Graduate、 および Diploma として示します。 学歴が 20 を超える場合は、エラーになります。

    SELECT EMPNO,
           CASE WHEN EDUCLVL < 16 THEN 'Diploma'
                WHEN EDUCLVL < 18 THEN 'Graduate'
                WHEN EDUCLVL < 21 THEN 'Post Graduate'
                ELSE RAISE_ERROR('70001',
                                 'EDUCLVL has a value greater than 20')
           END
         FROM EMPLOYEE


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