Re: About how to use "exception when ??? then "
От | Richard Huxton |
---|---|
Тема | Re: About how to use "exception when ??? then " |
Дата | |
Msg-id | 441A6F46.5080609@archonet.com обсуждение исходный текст |
Ответ на | Re: About how to use "exception when ??? then " (Emi Lu <emilu@encs.concordia.ca>) |
Список | pgsql-sql |
Emi Lu wrote: > >> <snip> From the page: >> "The PL/pgSQL condition name for each error code is the same as the >> phrase shown in the table, with underscores substituted for spaces. >> For example, code 22012, DIVISION BY ZERO, has condition name >> DIVISION_BY_ZERO. Condition names can be written in either upper or >> lower case. > >> (Note that PL/pgSQL does not recognize warning, as opposed to error, >> condition names; those are classes 00, 01, and 02.)" > > That means pl/pgsql will not recognize error codes under classes 00, 01, > 02. Correct - they are informational rather than errors. I'm not sure what it would mean to trap "successful completion" for example. > Is there a way, I can output error code? > exception > when ... then > when others then > raise notice '%, %', SQLSTATE, SQLERRM; > > But it seems that SQLERRM and SQLSTATE did not work for me. By the way, > I am using postgresql 8.0.1. http://www.postgresql.org/docs/8.1/static/release-8-1.html See section E.4.3.9 - they were defined in 8.1 -- Richard Huxton Archonet Ltd
В списке pgsql-sql по дате отправления: