RAISE
RAISEステートメントは、SQLスクリプトで例外を発生させるために使用されます。
構文
RAISE [<exceptionName>] [VALUE [<valueExpression>]]
備考
•値式は文字列に解決される必要があります。 (
値の式を参照してください。)
•<exceptionName>は、現在のスコープ、親スコープで定義されている例外、または修飾名を持つ任意の例外(システム例外など)にすることができます。
•このステートメントが例外ハンドラーの外部にある場合は、名前が必要です。例外ハンドラー内で名前が使用されていない場合、現在の例外が再発生します。
•<valueExpression>は、オプションで例外に設定できます。存在しない場合、値はデフォルトでNULLになります。値は(必要に応じて)暗黙的にキャストされ、例外に割り当てられます。
VALUE句を含めて例外名を含めないことで、例外を再発生させるときに例外の値を変更できます。
例
PROCEDURE square (IN x INTEGER)
BEGIN
DECLARE illegal_parameter_ex EXCEPTION;
IF x IS NULL THEN
RAISE illegal_parameter_ex;
END IF;
...
END
PROCEDURE p (IN x INTEGER)
BEGIN
DECLARE illegal_parameter_ex EXCEPTION;
IF x < 0 THEN
RAISE illegal_parameter_ex VALUE 'x must be > 0. x='||x;
END IF;
...
END