Use the RAISE
statement to report messages and
raise errors.
RAISElevel
'format
' [,expression
[, ...]];
Possible levels are DEBUG
,
LOG
, INFO
,
NOTICE
, WARNING
,
and EXCEPTION
.
EXCEPTION
raises an error (which normally aborts the
current transaction); the other levels only generate messages of different
priority levels.
Whether messages of a particular priority are reported to the client,
written to the server log, or both is controlled by the
log_min_messages and
client_min_messages configuration
variables. See Chapter 17, Server Configuration for more
information.
Inside the format string, %
is replaced by the
next optional argument's string representation. Write
%%
to emit a literal %
.
Arguments can be simple variables or expressions,
and the format must be a simple string literal.
In this example, the value of v_job_id
will replace the
%
in the string:
RAISE NOTICE 'Calling cs_create_job(%)', v_job_id;
This example will abort the transaction with the given error message:
RAISE EXCEPTION 'Nonexistent ID --> %', user_id;
RAISE EXCEPTION
presently always generates
the same SQLSTATE
code, P0001
, no matter what message
it is invoked with. It is possible to trap this exception with
EXCEPTION ... WHEN RAISE_EXCEPTION THEN ...
but there
is no way to tell one RAISE
from another.