Commit 46c93bd5 authored by Tom Lane's avatar Tom Lane

Further cleanup of RAISE discussion; in particular, remove example

that doesn't actually work.
parent 24baa1d9
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/Attic/plsql.sgml,v 2.28 2001/05/08 02:26:09 momjian Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/plsql.sgml,v 2.29 2001/05/08 02:53:24 tgl Exp $
--> -->
<chapter id="plpgsql"> <chapter id="plpgsql">
...@@ -1309,20 +1309,29 @@ END LOOP; ...@@ -1309,20 +1309,29 @@ END LOOP;
RAISE <replaceable class="parameter">level</replaceable> '<replaceable class="parameter">format</replaceable>' <optional>, <replaceable class="parameter">variable</replaceable> <optional>...</optional></optional>; RAISE <replaceable class="parameter">level</replaceable> '<replaceable class="parameter">format</replaceable>' <optional>, <replaceable class="parameter">variable</replaceable> <optional>...</optional></optional>;
</synopsis> </synopsis>
Inside the format, <literal>%</literal> is replaced by the next argument's Possible levels are DEBUG (write the message into the postmaster log),
external representation. Double <literal>%</literal>'s are output as <literal>%</literal>. NOTICE (write the message into the postmaster log and forward it to
Possible levels are DEBUG (silently suppressed in production the client application) and EXCEPTION (raise an error,
running databases), NOTICE (written into the database log and forwarded to
the client application) and EXCEPTION (written into the database log and
aborting the transaction). aborting the transaction).
Inside the format string, <literal>%</literal> is replaced by the next
optional argument's external representation.
Write <literal>%%</literal> to emit a literal <literal>%</literal>.
Note that the optional arguments must presently
be simple variables, not expressions, and the format must be a simple
string literal.
</para> </para>
<!--
This example should work, but does not:
RAISE NOTICE ''Id number '' || key || '' not found!'';
Put it back when we allow non-string-literal formats.
-->
<para> <para>
<programlisting> <programlisting>
RAISE NOTICE ''Id number '' || key || '' not found!'';
RAISE NOTICE ''Calling cs_create_job(%)'',v_job_id; RAISE NOTICE ''Calling cs_create_job(%)'',v_job_id;
</programlisting> </programlisting>
In this last example, v_job_id will replace the % in the In this example, the value of v_job_id will replace the % in the
string. string.
</para> </para>
...@@ -1330,7 +1339,7 @@ RAISE NOTICE ''Calling cs_create_job(%)'',v_job_id; ...@@ -1330,7 +1339,7 @@ RAISE NOTICE ''Calling cs_create_job(%)'',v_job_id;
<programlisting> <programlisting>
RAISE EXCEPTION ''Inexistent ID --> %'',user_id; RAISE EXCEPTION ''Inexistent ID --> %'',user_id;
</programlisting> </programlisting>
This will abort the transaction and write to the database log. This will abort the transaction with the given error message.
</para> </para>
</sect2> </sect2>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment