|PostgreSQL 8.3.23 Documentation|
|Prev||Fast Backward||Chapter 38. PL/pgSQL - SQL Procedural Language||Fast Forward||Next|
Use the RAISE statement to report messages and raise errors.
RAISE level '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 18 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, but 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.
If you see anything in the documentation that is not correct, does not match your experience with the particular feature or requires further clarification, please use this form to report a documentation issue.