Коды возврата SQL DB2

редактировать

Коды возврата SQL используются ежедневно для диагностики программных сбоев в результате вызовов SQL компьютерными программами DB2 . Важной особенностью программ DB2 является обработка ошибок. Диагностика ошибок, содержащая код возврата SQL, содержится в поле SQLCODE в блоке DB2.

SQLCODE больше не является частью стандарта SQL. Стандарт SQL заменил SQLCODE на более подробный SQLSTATE.

Contents
  • 1 SQLCA
  • 2 SQLCODE
    • 2.1 Ноль (успешно)
    • 2.2 Отрицательные значения (ошибки)
    • 2.3 Положительные Значения (предупреждения)
  • 3 ссылки
SQLCA

Структура области связи SQL (SQLCA) используется в программе DB2 для возврата обратной связи в прикладную программу .

SQLCODE

Поле SQLCODE содержит код возврата SQL. Код может быть нулевым (0), отрицательным или положительным:

  • 0 означает, что выполнение было успешным.
  • Отрицательные значения указывают на неудачное выполнение с ошибкой.. Пример: -911, что означает, что истек тайм-аут с откатом.
  • Положительное значение означает успешное выполнение с предупреждением.. Пример: +100, что означает, что совпадающие строки не найдены или что курсор достиг конца таблицы.

Вот более полный список SQLCODE для DB2. Обратите внимание, что этот список не является исчерпывающим. Также обратите внимание, что некоторые SQLCODE могут встречаться только в определенных продуктах DB2; например, только в DB2 z / OS, только в DB2 LUW или только в DB2 iSeries (AS400).

Ноль (Успешно)

0 Успешно

Отрицательные значения (Ошибки)

-007Указанный «символ» не является допустимым символом в операторах SQL.
-010Строковая константа, начинающаяся со строки, не завершена должным образом.
-029Требуется пункт INTO.
-060НЕВЕРНЫЙ тип СПЕЦИФИКАЦИЯ: spec
-084Недопустимый оператор SQL.
-101Оператор слишком длинный или слишком сложный.
-102Слишком длинная строковая константа.
-103Слишком длинная строковая константа. Максимум 128 символов.
-104В операторе SQL обнаружен недопустимый символ.
-105Слишком длинная строковая константа.
-117Количество значений в INSERT не соответствует количеству столбцов.
-122Недопустимый столбец или выражение в списке выбора
-156Недопустимый синтаксис рядом с ключевым словом.
-180Неверные данные в дате / времени / отметке времени.
-181Неверные данные в дате / времени / отметке времени.
-188Переменная хоста в операторе DESCRIBE не является допустимым строковым представлением имени.
-199Незаконное использование указанного ключевого слова.
-203ССЫЛКА НА COLUMN имя-столбца НЕВЕРОЯТНО
-204Объект не определен для DB2.
-205Имя столбца отсутствует в таблице.
-206Столбец не существует ни в одной таблице SELECT.
-207Недопустимое имя столбца.
-208ПОРЯДОК ПО СТАТЬЕ НЕПРАВИЛЬНО, ПОТОМУ ЧТО СТОЛБЕЦ имя-столбца НЕ ЯВЛЯЕТСЯ ЧАСТЬЮ ТАБЛИЦЫ РЕЗУЛЬТАТОВ
-209Неопределенное имя столбца
-216Не одинаковое количество выражений по обе стороны от сравнения в SELECT.
-224FETCH не может сделать INSENSITIVE ЧУВСТВИТЕЛЬНЫМ курсор.
-229Не найден языковой стандарт, указанный в инструкции SET LOCALE.
-257Неявное преобразование в типе данных недопустимо.
-302ЗНАЧЕНИЕ ВХОДНОЙ ПЕРЕМЕННОЙ ИЛИ НОМЕР ПАРАМЕТРА номер позиции НЕДЕЙСТВИТЕЛЬНО ИЛИ СЛИШКОМ БОЛЬШОЕ ДЛЯ ЦЕЛЕВОГО СТОЛБЦА ИЛИ ЦЕЛЕВОГО ЗНАЧЕНИЯ
-303ЗНАЧЕНИЕ НЕ МОЖЕТ БЫТЬ НАЗНАЧЕН ДЛЯ ВЫХОДНОГО НОМЕРА ПЕРЕМЕННОЙ ХОСТА номер позиции ПОТОМУ ЧТО ТИПЫ ДАННЫХ НЕ СРАВНИМАЮТСЯ
-305Необходим нулевой индикатор.
-311Varchar, вставить или обновить. -LEN поле с правильной длиной данных не установлено.
-313Количество указанных переменных хоста не равно количеству маркеров параметров.
-401Типы данных операндов операции несовместимы.
-404Указанный оператор Sql содержит слишком длинную строку.
-407ОБНОВЛЕНИЕ, ВСТАВКА ИЛИ УСТАНОВЛЕННОЕ ЗНАЧЕНИЕ НУЖНО, НО имя столбца ОБЪЕКТА НЕ МОЖЕТ СОДЕРЖАТЬ НУЛЕВЫЕ ЗНАЧЕНИЯ
-408тип данных цели назначения. Имя цели: «». (*** OBS: Para alguns casos o CAST resolve)
-418Использование маркера параметра недействительно.
-420Значение строкового аргумента неприемлемо для функции 'имя-функции'
-433Данные слишком велики
-438Приложение вызвало ошибку с диагностическим текстом: текст
-440Подпрограмма 1 в 2 не найдена с указанными параметрами. Функция или процедура с указанным именем и совместимыми аргументами не найдены. [ 1]
-482Процедура не вернула локаторов.
-501Курсор не открывается при FETCH.
-502Открывающий курсор, который уже открыт.
-503Необходимо указать столбец обновления.
-504Имя курсора не объявлено.
-510Таблица, обозначенная курсором оператора Update или Delete, не может быть изменена.
-530Ссылочная целостность предотвращает INSERT / UPDATE
-532Ссылочная целостность (правило DELETE RESTRICT), предотвращающая УДАЛЕНИЕ.
-536Ссылочная целостность (правило DELETE RESTRICT) предотвращает DELETE.
-545Проверить ограничение, предотвращающее INSERT / UPDATE.
-551Ошибка авторизации.
-554ID авторизации или роль не могут ПРЕДОСТАВЛЯТЬ себе привилегию.
-601Вы пытались создать объект, который уже существует.
-602Слишком много столбцов указано в индексе создания.
-603уникальный индекс не может быть создан, потому что таблица содержит строки, которые дублируются по отношению к значениям идентифицированных столбцов и периодов
-604тип данных определение указывает недопустимый атрибут длины, точности или масштаба.
-607операция или опция операция не определена для этого объекта
-610предупреждение: создание / изменение при объект поместил объект в ожидающий
-611, может быть указан только lockmax 0, если размер блокировки табличного пространства равен табличному пространству или таблица
-612идентификатор - повторяющееся имя
-613первичный ключ, или хэш-ключ, или уникальное ограничение слишком длинное или имеет слишком много столбцов и периодов
-614индекс не может быть создан или изменен, или длину столбца нельзя изменить, потому что сумма внутренних длин столбцов для индекса больше допустимого максимума
-615тип операции не разрешен для пакета в используйте
-616obj-type1 obj-name 1 нельзя отбросить, потому что на него ссылается obj-type2 obj-name2
-617индекс типа 1 недействителен для таблицы
-618операция операция не разрешено в системных базах данных
-619операция запрещена, поскольку база данных не остановлена ​​
-620ключевое слово ключевое слово в операторе stmt-type не разрешено для пространства-типа в базе данных типа базы данных
-621был обнаружен повторяющийся dbid dbid, который ранее был назначен имени-базе данных
-622для смешанных данных, недопустим, поскольку установка смешанных данных опция нет
-623кластер недействителен для table-name
-624table table-name уже имеет первичный ключ или уникальное ограничение с указанными столбцами и точками
-625таблица имя-таблицы не имеет индекса для обеспечения уникальности первичного или уникального ключа
-625предупреждение: определение таблицы было изменено к неполному
-626оператор alter не может быть выполнен, потому что задана страница не остановлен
-627оператор alter недействителен, потому что табличное пространство или индекс имеет наборы данных, управляемые пользователем
-628предложения являются взаимоисключающими
-629set null не может быть указан, потому что имя внешнего ключа не может содержать нулевые значения
-630ошибка: спецификация WHERE NOT NULL недопустима для индексов типа 1
-631имя внешнего ключа слишком длинное или имеет слишком много столбцов
-632таблица не может быть определена как зависимая от имени-таблицы из-за ограничений правила DELETE
-633правило DELETE должно быть правилом DELETE
-634правило DELETE не должно быть каскадным
-635правила DELETE не могут отличаться или не может быть установлено значение null
-636диапазоны, указанные для part-num раздела, недействительны
-637duplicate keyword-name или clause
-638таблица имя-таблицы не может быть создана, потому что отсутствует определение столбца
-639столбец внешнего ключа, допускающий значение NULL, с правилом DELETE для set null не может быть столбцом ключа секционированного индекса
-640строка locksize не может быть указана, потому что таблица в этом табличном пространстве тоже имеет индекс типа 1
-642много столбцов в уникальных ограничениях
-643проверочное ограничение или значение выражения для столбца индекса превышает максимально допустимую длину ключевое выражение
-644недействительно значение, указанное для ключевого слова или предложения keyword-or-clause в инструкции stmt-type
-645WHERE NOT NULL, игнорируется, поскольку ключ индекса не может содержать нулевые значения
-646таблица имя-таблицы не может быть создана в указанном табличном пространстве имя-табличного-пространства, поскольку она уже содержит таблицу
-647пул буферов bp-name для неявного или явного табличного пространства или имя индексного пространства не было активировано
-650оператор alter не может быть выполнен, код причины авторское право 2014 TheAmericanProgrammer.com Несанкционированное копирование запрещено
-651описание таблицы превышает максимальный размер дескриптор объекта.
-652нарушение установленной установкой процедуры редактирования или проверки имя-процесса
-653таблица имя-таблицы в многораздельном табличном пространстве имя-пространства недоступно, поскольку оно разделено индекс не был создан
-655создание или изменение группы хранения недопустимо, поскольку группа хранения будет иметь как конкретные, так и неспецифические идентификаторы тома
-658объект -type не может быть отброшен с помощью оператора
-660индекс имя-индекса не может быть создан или изменен в многораздельном табличном пространстве имя-пространства, поскольку не указаны ограничения ключа
-661объект-тип имя-объекта не может быть создан в многораздельном табличном пространстве имя-пространства, поскольку количество спецификаций разделов не равно количеству разделов табличного пространства
-662многораздельного индекс не может быть создан в табличном пространстве, или табличное пространство не может управляться индексом. табличное пространство tspace-name, причина-код-причины
-663количество предельных значений ключа либо равно нулю, либо больше количества столбцов в ключе индекса index-name
- 664внутренняя длина полей ключа ограничения для секционированного индекса превышает длину, установленную менеджером индексов
-665предложение секционирования оператора alter опущено или недействительно
-666Невозможно выполнить объект stmt-verb, поскольку функция выполняется
-667нельзя явно отбросить индекс кластеризации для многораздельного табличного пространства
- 668столбец не может быть добавлен в таблицу, поскольку в таблице есть процедура редактирования, определенная с чувствительностью к атрибуту строки
-669, объект не может быть удален явно. причина код-причины
-670длина записи таблицы превышает предел размера страницы
-671атрибут буферного пула табличного пространства нельзя изменить, как указано, потому что это изменило бы размер страницы табличного пространства
-672операция отбрасывание не разрешена для таблицы имя_таблицы
-676физические характеристики индекса несовместимы с указанное заявление. заявление не удалось. причина код-причины
-677недостаточно виртуальной памяти для расширения буферного пула
-678константа, указанная для ключа ограничения индекса, должна соответствовать типу данных тип-данных соответствующий столбец имя-столбца
-679имя объекта не может быть создано, потому что на объекте отложено перетаскивание
-680слишком много столбцов указано для таблицы, функция просмотра или таблицы
-681столбец имя-столбца в нарушение процедуры установки поля. rt: код-возврата, rs: код-причины, msg: токен-сообщения
-682поле процедура имя-процедуры не может быть загружено
-683спецификация для столбца, отдельного типа, функции или процедуры элемент данных содержит несовместимые предложения
-684длина строки начала списка констант слишком длинная
-685недопустимое поле тип, имя-столбца
-686столбец, определенный с помощью процедуры поля, не может сравниваться с другим столбцом с другой процедурой поля
-687типы полей несовместимы
- 688неверные данные, возвращенные процедурой поля, имя-столбца, сообщение
-689слишком много столбцов, определенных для зависимой таблицы
-690оператор отклонен поддержкой управления определением данных. причина код-причины
-691требуемая таблица регистрации имя-таблицы не существует
-692требуемый уникальный индекс имя-индекса для таблицы регистрации ddl имя-таблицы не существует
-693имя столбца в таблице регистрации ddl или имя индекса не определено должным образом
-694оператор схемы не может быть выполнен из-за отбрасывания ожидает выполнения в таблице регистрации ddl имя-таблицы
-694оператор ddl не может быть выполнен, так как отложено удаление в таблице регистрации ddl
-695недопустимое значение seclabel, указанный для столбца метки защиты таблицы имя-таблицы
-696, определение триггера имя-триггера включает недопустимое использование имени корреляции или имени таблицы перехода. код причины = код-причины
-697старые или новые имена корреляции не допускаются в триггере, определенном с помощью предложения для каждого оператора. Имена old_table или new_table не допускаются в триггере с предложением before.
-747Таблица недоступна.
-803Повторяющийся ключ при вставке или обновлении.
-804Ошибка во входных параметрах для оператора SQL.
-805DBRM или пакет не найден в плане.
-811В SELECT INTO получено более одной строки.
-818План и программа: несоответствие отметок времени.
-904Недоступный ресурс. Кто-то другой блокирует ваши данные.
-911Тупик или тайм-аут. Откат сделан.
-913Тупик или тайм-аут. Отката нет.
-922Требуется авторизация.
-924Внутренняя ошибка соединения DB2.
-927Был вызван языковой интерфейс, но соединение не установлено.
-955Сортировочная память не может быть выделена для обработки оператора.
-964Пространство журнала транзакций исчерпано или временно увеличилось количество активных транзакций.
-998Ошибка во время транзакции или эвристической обработки.
-7008Указанный объект недопустим для запрошенной операции.
-10330В разрешении на изменение базы данных отказано. Обратитесь к системному администратору.
-30090Удаленная операция недопустима для среды выполнения приложения.

Положительные значения (предупреждения)

+98Оператор динамического SQL заканчивается точкой с запятой
+100Строка не найдена или конец курсора.
+222Попытка получить строку в инструкции DELETE.
+223Попытка получить строку в операторе UPDATE.
+231FETCH после BEFORE или AFTER, но не в допустимой строке.
+304Значение с типом данных (тип данных 1) не может быть присвоено переменной хоста, потому что значение находится вне диапазона переменной хоста в позиции (номер позиции) с типом данных ( тип данных 2)
+354Оператор выборки набора строк мог вернуть одну или несколько строк данных. однако также было обнаружено одно или несколько условий предупреждения. используйте оператор получения диагностики для получения дополнительных сведений об обнаруженных условиях
+562Предоставление привилегии было проигнорировано, поскольку получатель гранта уже имеет привилегию от лица, предоставившего право.
+802Нулевой индикатор был установлен на -2 в качестве арифметического.
Ссылки
Последняя правка сделана 2021-05-16 08:36:53
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте