поднять уведомление "%%", SQLERRM, SQLSTATE не работает - PullRequest
0 голосов
/ 25 апреля 2019

У меня проблема с уведомлением при возникновении исключения. Допустим, мой запрос содержит два оператора вставки.

      do $$       
      begin
        insert into ...
        insert into ...
      exception when others then 
        raise notice '% %', SQLERRM, SQLSTATE;
      end; $$ 
      language 'plpgsql';

Я хочу вернуть сообщение об ошибке и код. В настоящее время ничего не происходит. ЕСЛИ я удаляю 'уведомление'%% ', SQLERRM, SQLSTATE;' тогда возникает ошибка, но мне нужно ее поймать. Кажется, что «уведомление» не работает. Вот что я получил в ответ

{"command":"BEGIN","rowCount":null,"oid":null,"rows":[],"fields":[],"_parsers":[],"RowCtor":null,"rowAsArray":true}
{"command":"LOCK","rowCount":null,"oid":null,"rows":[],"fields":[],"_parsers":[],"RowCtor":null,"rowAsArray":true}
{"command":"DO","rowCount":null,"oid":null,"rows":[],"fields":[],"_parsers":[],"RowCtor":null,"rowAsArray":true}
{"command":"COMMIT","rowCount":null,"oid":null,"rows":[],"fields":[],"_parsers":[],"RowCtor":null,"rowAsArray":true}

Postgres 9,4

...