Как динамически выполнять команду PostgreSQL RAISE

Как вызвать ошибку в SQL-выражении PostgreSQL, если выполняется какое-то условие?
Я попробовал код ниже, но получил ошибку.

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 заменяется некоторым условием.

Update

Я попытался расширить ответ, чтобы передать параметры сообщения об исключении. Попробовал код ниже, но получил синтаксическую ошибку. Как передать параметры сообщения?

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 ); 

Ответы на вопрос(1)

Ваш ответ на вопрос