Вернуть номер ошибки

Я хочу вернуть номер ошибки, используя версию PostgreSQL 9.3.

Я сослался на это:-> http://www.postgresql.org/docs/9.4/static/errcodes-appendix.html

но хочу знать, как мне вернуть номер ошибки.

В SQL Server 2008 R2 мы просто используем @@ERROR..

Пример:

IF @@ERROR <> 0 
BEGIN
   PRINT 'Error message';
   RETURN(1);
END

Мой вопрос. Можем ли мы получить номер ошибки в PostgreSQL так же, как в SQL Server, используя @@ERROR?


person MAK    schedule 12.01.2015    source источник
comment
postgresql.org/docs/current/static/   -  person a_horse_with_no_name    schedule 12.01.2015


Ответы (1)


В PL/pgSQL вы должны перехватывать ошибки и вы можете поднять ( пользовательские) ошибки. (Нормальное выполнение останавливается во время ошибки.)

Ошибки в PostgreSQL имеют уровни, коды ошибок (SQLSTATE) и явные имена.

F.ex:

BEGIN
    -- code that can potentially raise an error
EXCEPTION
    WHEN division_by_zero THEN -- trap by name
        -- handle division_by_zero
    WHEN SQLSTATE '22012' THEN -- trap by SQLSTATE
        -- handle SQLSTATE 22012
    WHEN OTHERS THEN -- trap all other error
        RAISE no_data; -- raise error by name
        RAISE SQLSTATE '02000'; -- raise error by SQLSTATE
END
person pozs    schedule 12.01.2015