Для использования переменных SQLSTATE и SQLERRM для обработки ошибок в PostgreSQL необходимо выполнить следующие шаги:
- Обработать исключение внутри конструкции BEGIN. 1 Для этого нужно указать идентификатор ошибки, который будет обрабатываться. 1 Коды всех ошибок и их идентификаторов можно найти на странице PostgreSQL Error Codes официальной документации. 1
- Получить код ошибки из переменной SQLSTATE. 23 Для этого внутри секции EXCEPTION нужно вывести в лог значение специальной переменной SQLSTATE, которая содержит искомый код. 1
- Получить текст ошибки из переменной SQLERRM. 3 Например, можно вывести в лог сообщение с кодом ошибки и её текстом:
RAISE NOTICE 'ERROR CODE: %. MESSAGE TEXT: %', SQLSTATE, SQLERRM;
. 3
Эти переменные являются неопределёнными вне секции EXCEPTION. 2