Что означает информация, возвращаемая параметром SQLSTATE
Что означает информация, возвращаемая параметром SQLSTATE
В элементах CONNECTTON_NAME и ENVIRONMENTJVAME хранятся названия соединения и той среды, с которой было установлено соединение во время выполнения оператора SQL.
Если информация из параметра SQLSTATE относится к работе с таблицей, то эту таблицу определяют элементы CATALOG_NAME, SCHEMA_NAME и TABLE_NAME. Если появление ошибки как-то связано со столбцом таблицы, его имя помещается в элемент COLUMN_NAME. Если нештатная ситуация имеет отношение к курсору, его имя будет находиться в элементе CURSOR_NAME.
Иногда СУБД, чтобы объяснить ситуацию, создает строку текста на каком-либо языке, например английском. Такого рода информация содержится в элементе MESSAGE_TEXT. Его содержимое определяется не стандартом SQL.2003, а реализацией. Если в элементе MESSAGEJTEXT имеется сообщение, его длина в символах записывается в элемент MESSAGE_LENGTH, а длина в октетах — в элемент MESSAGE_OCTET_LENGTH. У сообщения, состоящего из обычных ASCII-символов, значения MESSAGE_LENGTH и MESSAGE_OCTET_LENGTH равны между собой. А если сообщение составлено на китайском, японском или любом другом языке, в котором для выражения символа требуется больше одного октета, то значения MESSAGE_LENGTH и MESSAGE_OCTET_LENGTH будут разными.
Чтобы получить диагностическую информацию из области заголовка, воспользуйтесь выражением:
GET DIAGNOSTICS переменная1 = элемент1 [, переменная2 = елемент2] ... ;
где переменная_n — это параметр или базовая переменная; элемент_n — любое из следующих ключевых слов: NUMBER, MORE, COMMAND_FUNCTION, DYNAMIC_FUNCTION или ROW_COUNT.
А чтобы получить диагностическую информацию из информационной области, используют следующий синтаксис:
GET DIAGNOSTICS EXCEPTION номер-состояния
переменная1 = элемент1 [, переменная2 = элемент2] ... ;
где переменная_n — это параметр или базовая переменная; элемент_n — любое из семнадцати ключевых слов элементов информационной области. Эти ключевые слова приведены в табл. 20.2. И наконец, номер состояния— это значение элемента CONDITION_NUMBER информационной области.