Обработка исключений DB2 - PullRequest
0 голосов
/ 09 июля 2009

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

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

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

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

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

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

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

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

Harveer

1 Ответ

1 голос
/ 12 июля 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...