Re: How to trap invalid enum input exception?

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: How to trap invalid enum input exception?
Дата
Msg-id 11818.1281928322@sss.pgh.pa.us
обсуждение исходный текст
Ответ на How to trap invalid enum input exception?  (Leon Starr <leon_starr@modelint.com>)
Ответы Re: How to trap invalid enum input exception?  (Leon Starr <leon_starr@modelint.com>)
Список pgsql-novice
Leon Starr <leon_starr@modelint.com> writes:
> db=# select test_input('blue');
> ERROR:  invalid input value for enum side: "blue"

> 1) What is the actual name of the condition (and, yes, I looked through appendix A trying to figure it out) for
invalidenum input? 

[ looks at code... ] Try INVALID_TEXT_REPRESENTATION.

> 2) Is there a way to retrieve the error code so that I don't have to guess at the condition name?  (I've been playing
thisgame a lot with other exceptions and I don't understand WHY the condition or code isn't provided when an untrapped
erroroccurs)  Clearly, I'm missing something! 

In psql, you can do this:

regression=# CREATE TYPE side AS ENUM ('right', 'left');
CREATE TYPE
regression=# select 'blue'::side;
ERROR:  invalid input value for enum side: "blue"
LINE 1: select 'blue'::side;
               ^
regression=# \set VERBOSITY verbose
regression=# select 'blue'::side;
ERROR:  22P02: invalid input value for enum side: "blue"
LINE 1: select 'blue'::side;
               ^
LOCATION:  enum_in, enum.c:56

and after that, you can either look up the SQLSTATE 22P02 in appendix A,
or consult the source code in enum_in().  If you're not using psql, the
same information should be available through the client API you're using
--- feel free to complain to its authors if not.

            regards, tom lane

В списке pgsql-novice по дате отправления:

Предыдущее
От: Leon Starr
Дата:
Сообщение: How to trap invalid enum input exception?
Следующее
От: Leon Starr
Дата:
Сообщение: Re: How to trap invalid enum input exception?