Как отобразить детализацию ошибки PostgreSQL / PLPGSQL - PullRequest
0 голосов
/ 01 июля 2019

Как мне добавить сгенерированные системой сведения об ошибках в операторы RAISE NOTICE?Например, я получаю сообщение об ошибке, связанное со структурой возвращаемой таблицы.SQLERRM просто говорит «структура не такая, как ожидалось».Однако, если я отключаю обработку исключений и смотрю на сгенерированное системой сообщение об ошибке, оно включает дополнительную информацию о столбце bigint not as Ожидаемый int.Есть ли способ получить эту дополнительную строку, чтобы я мог добавить ее в свой оператор RAISE NOTICE?

Текущее использование: RAISE NOTICE '%', SQLERRM;

Ожидаемое: RAISE NOTICE '% %', SQLERRM, SQLDET(?);

Я посмотрел документацию по PostgreSQL, но все это, похоже, связано с тем, хочу ли я добавить свой собственный комментарий - здесь я ищу использование того, что, кажется, уже существует где-то в системе.

Спасибо!

1 Ответ

0 голосов
/ 01 июля 2019

Вы можете использовать GET STACKED DIAGNOSTICS в вашем обработчике исключений, чтобы получить больше деталей. Различные варианты показаны здесь . Я не уверен, какой именно вы ищете, но вам, вероятно, стоит попробовать PG_EXCEPTION_DETAIL.

...