diff --git a/doc/src/sgml/plpgsql.sgml b/doc/src/sgml/plpgsql.sgml
index 071f5a87d3..9b1977022a 100644
--- a/doc/src/sgml/plpgsql.sgml
+++ b/doc/src/sgml/plpgsql.sgml
@@ -3815,10 +3815,10 @@ CALL transaction_test2();
raise errors.
-RAISE level 'format' , expression , ... USING option = expression , ... ;
-RAISE level condition_name USING option = expression , ... ;
-RAISE level SQLSTATE 'sqlstate' USING option = expression , ... ;
-RAISE level USING option = expression , ... ;
+RAISE level 'format' , expression , ... USING option { = | := } expression , ... ;
+RAISE level condition_name USING option { = | := } expression , ... ;
+RAISE level SQLSTATE 'sqlstate' USING option { = | := } expression , ... ;
+RAISE level USING option { = | := } expression , ... ;
RAISE ;
@@ -3840,8 +3840,9 @@ RAISE ;
- After level if any,
- you can specify a format string
+ In the first syntax variant,
+ after the level if any,
+ write a format string
(which must be a simple string literal, not an expression). The
format string specifies the error message text to be reported.
The format string can be followed
@@ -3863,7 +3864,27 @@ RAISE NOTICE 'Calling cs_create_job(%)', v_job_id;
- You can attach additional information to the error report by writing
+ In the second and third syntax variants,
+ condition_name and
+ sqlstate specify an
+ error condition name or a five-character SQLSTATE code, respectively.
+ See for the valid error condition
+ names and the predefined SQLSTATE codes.
+
+
+
+ Here are examples
+ of condition_name
+ and sqlstate usage:
+
+RAISE division_by_zero;
+RAISE WARNING SQLSTATE '22012';
+
+
+
+
+ In any of these syntax variants,
+ you can attach additional information to the error report by writing
USING followed by option = expression items. Each
@@ -3876,8 +3897,7 @@ RAISE NOTICE 'Calling cs_create_job(%)', v_job_id;
MESSAGE
Sets the error message text. This option can't be used in the
- form of RAISE that includes a format string
- before USING.
+ first syntax variant, since the message is already supplied.
@@ -3900,7 +3920,9 @@ RAISE NOTICE 'Calling cs_create_job(%)', v_job_id;
Specifies the error code (SQLSTATE) to report, either by condition
name, as shown in , or directly as a
- five-character SQLSTATE code.
+ five-character SQLSTATE code. This option can't be used in the
+ second or third syntax variant, since the error code is already
+ supplied.
@@ -3932,25 +3954,15 @@ RAISE EXCEPTION 'Nonexistent ID --> %', user_id
RAISE 'Duplicate user ID: %', user_id USING ERRCODE = 'unique_violation';
RAISE 'Duplicate user ID: %', user_id USING ERRCODE = '23505';
-
-
-
- There is a second RAISE syntax in which the main argument
- is the condition name or SQLSTATE to be reported, for example:
-
-RAISE division_by_zero;
-RAISE SQLSTATE '22012';
-
- In this syntax, USING can be used to supply a custom
- error message, detail, or hint. Another way to do the earlier
- example is
+ Another way to produce the same result is:
RAISE unique_violation USING MESSAGE = 'Duplicate user ID: ' || user_id;
- Still another variant is to write RAISE USING or RAISE
+ As shown in the fourth syntax variant, it is also possible to
+ write RAISE USING or RAISE
level USING and put
everything else into the USING list.