Hello You can execute only SQL statements - RAISE is plpgsql statement, not SQL statement, so you cannot execute it. why you don't use just CREATE OR REPLACE FUNCTION raise_exception(text) RETURNS void AS $$ BEGIN RAISE EXCEPTION '%', $1; END; $$ LANGUAGE plpgsql; SELECT raise_exception('bubu'); Regards Pavel Stehule 2012/8/11 Andrus <kobruleht2@xxxxxx>: > I’m looking for a way to raise error from sql select if some condition is > met. > Tried code below to got error shown in comment. > How to fix ? > > Andrus > > 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 -- in real application true is > replaced by some condition - Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general