いくつかの条件が満たされた場合、PostgreSQL SQL ステートメントからエラーを発生させる方法は?
以下のコードを試しましたが、エラーが発生しました。
CREATE OR REPLACE FUNCTION "exec"(text)
RETURNS text AS
$BODY$
BEGIN
EXECUTE $1;
RETURN $1;
END;
$BODY$
LANGUAGE plpgsql VOLATILE;
-- ERROR: syntax error at or near "raise"
-- LINE 1: raise 'test'
SELECT exec('raise ''test'' ') WHERE TRUE
実際のアプリケーションTRUE
では、いくつかの条件に置き換えられます。
アップデート
回答を拡張して、例外メッセージ パラメータを渡そうとしました。以下のコードを試しましたが、構文エラーが発生しました。メッセージパラメータを渡す方法は?
CREATE OR REPLACE FUNCTION exec(text, variadic )
RETURNS void LANGUAGE plpgsql AS
$BODY$
BEGIN
RAISE EXCEPTION $1, $2;
END;
$BODY$;
SELECT exec('Exception Param1=% Param2=%', 'param1', 2 );