Обработка исключений DB2

Проблема, с которой я сталкиваюсь, в первую очередь связана с обработкой исключений! Когда возникает исключение, я хочу поместить эти данные в другую таблицу журнала с сообщением об ошибке. Однако в DB2 я не могу найти способ получить соответствующее сообщение об ошибке для поднятого SQLSTATE.

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

Хотя я уже спрашивал об этом и фактически получил несколько ценных указаний.

См.: Обработка исключений DB2

Однако, если я использую базовую функцию SQLERRM, то для базового 23502 я получаю следующее сообщение:

«SQLSTATE 23502: значение вставки или обновления равно null, но столбец не может содержать значения null».

В то время как я действительно хочу, чтобы имя столбца, вызвавшего эту ошибку, было добавлено к этому сообщению! Может ли DB2 выдать полную ошибку с именем столбца, в котором возникла ошибка?

Заранее спасибо ;-)...

Харвир


person Community    schedule 09.07.2009    source источник


Ответы (1)


При возникновении такой ошибки вам необходимо получить все токены из SQLCA. Маркеры будут содержать либо имя таблицы и имя столбца, либо числовой идентификатор таблицы и положение столбца в таблице, начиная с нуля. Функция SQLERRM принимает эти маркеры и использует их для восстановления сообщения об ошибке, которое является таким же подробным, как и то, что вы видите в командной строке.

person Fred Sobotka    schedule 11.07.2009