Коды возврата DB2 SQL - DB2 SQL return codes
Коды возврата SQL используются на повседневной основе для диагностики сбоев программирования в результате SQL звонки от DB2 компьютерные программы. Важная особенность DB2 программы - это обработка ошибок. Диагностика ошибок, содержащая код возврата SQL, хранится в поле SQLCODE внутри DB2 SLCA блокировать.
SQLCODE больше не является частью стандарта SQL. Стандарт SQL заменил SQLCODE на более подробный SQLSTATE.
SQLCA
Структура области связи SQL (SQLCA) используется в DB2 программа для возврата отзыва прикладная программа.
SQLCODE
Поле SQLCODE содержит код возврата SQL. Код может быть нулевым (0), отрицательным или положительным:
- 0 означает, что выполнение было успешным.
- Отрицательные значения указывают на неудачное выполнение с ошибкой.
Например, -911, что означает, что истекло время ожидания откат. - Положительное значение означает успешное выполнение с предупреждением.
Пример: +100, что означает, что совпадающие строки не найдены или курсор дошел до конца таблицы.
Вот более полный список SQLCODE для DB2. Обратите внимание, что этот список не является исчерпывающим. Также обратите внимание, что некоторые SQLCODE могут встречаться только в определенных продуктах DB2; например, только в DB2z / OS, только в DB2 LUW или только в DB2iSeries (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 | ORDER BY CLAUSE НЕ ДЕЙСТВУЕТ, ПОТОМУ ЧТО COLUMN имя-столбца НЕ ЯВЛЯЕТСЯ ЧАСТЬЮ ТАБЛИЦЫ |
-209 | Неоднозначное имя столбца |
-216 | Не одинаковое количество выражений на обеих сторонах сравнения в SELECT. |
-224 | FETCH не может сделать INSENSITIVE ЧУВСТВИТЕЛЬНЫМ курсор. |
-229 | Языковой стандарт, указанный в инструкции SET LOCALE, не найден. |
-257 | Неявное преобразование в тип данных недопустимо. |
-302 | ЗНАЧЕНИЕ ВХОДНОЙ ПЕРЕМЕННОЙ ИЛИ НОМЕР ПАРАМЕТРА Номер позиции НЕДЕЙСТВИТЕЛЬНО ИЛИ СЛИШКОМ БОЛЬШОЙ ДЛЯ ЦЕЛЕВОЙ КОЛОНКИ ИЛИ ЦЕЛЕВОГО ЗНАЧЕНИЯ |
-303 | ЗНАЧЕНИЕ НЕ МОЖЕТ БЫТЬ НАЗНАЧЕНО ВЫХОДНОМУ НОМЕР ПЕРЕМЕННОЙ ХОСТА, номер позиции, ПОТОМУ ЧТО ТИПЫ ДАННЫХ НЕ СРАВНИМЫЕ |
-305 | Нужен нулевой индикатор. |
-311 | Варчар, вставить или обновить. -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) предотвращает DELETE. |
-536 | Ссылочная целостность (правило DELETE RESTRICT) предотвращает DELETE. |
-545 | Проверить ограничение, предотвращающее INSERT / UPDATE. |
-551 | Ошибка авторизации. |
-554 | ID авторизации или роль не могут ПРЕДОСТАВЛЯТЬ себе привилегию. |
-601 | Вы пытались создать объект, который уже существует |
-602 | В индексе создания указано слишком много столбцов. |
-603 | уникальный индекс не может быть создан, потому что таблица содержит строки, которые дублируют значения указанных столбцов и периодов |
-604 | определение типа данных указывает недопустимый атрибут длины, точности или масштаба |
-607 | операция или опция операция не определена для этого объекта |
-610 | предупреждение: создание / изменение объекта поместило объект в ожидание |
-611 | только lockmax 0 может быть указан, когда размер блокировки табличного пространства равен табличному пространству или таблице |
-612 | идентификатор - это повторяющееся имя |
-613 | первичный ключ, или хеш-ключ, или уникальное ограничение слишком длинное или имеет слишком много столбцов и точек |
-614 | индекс не может быть создан или изменен, или длина столбца не может быть изменена, потому что сумма внутренних длин столбцов для индекса больше, чем допустимый максимум |
-615 | тип операции не разрешен для используемого пакета |
-616 | obj-type1 obj-name1 нельзя отбросить, потому что на него ссылается obj-type2 obj-name2 |
-617 | индекс типа 1 недействителен для таблицы |
-618 | операция запрещена в системных базах данных |
-619 | операция запрещена, поскольку база данных не остановлена |
-620 | ключевое слово ключевое слово в инструкции stmt-type не разрешено для пространства-типа в базе данных типа базы данных |
-621 | обнаружен дублирующийся dbid dbid, который ранее был назначен имени базы данных |
-622 | для смешанных данных недопустима, потому что параметр установки смешанных данных не |
-623 | кластер недопустим для имени-таблицы |
-624 | таблица имя-таблицы уже имеет первичный ключ или уникальное ограничение с указанными столбцами и точками |
-625 | таблица имя-таблицы не имеет индекса для обеспечения уникальности первичного или уникального ключа |
-625 | предупреждение: определение таблицы было изменено на неполное |
-626 | оператор alter не выполняется, потому что набор страниц не остановлен |
-627 | оператор alter недопустим, поскольку табличное пространство или индекс имеет наборы данных, управляемые пользователем |
-628 | пункты являются взаимоисключающими |
-629 | set null не может быть указан, потому что имя внешнего ключа не может содержать нулевые значения |
-630 | ошибка: спецификация WHERE NOT NULL недопустима для индексов типа 1 |
-631 | имя внешнего ключа слишком длинное или имеет слишком много столбцов |
-632 | таблица не может быть определена как зависимая от table-name из-за ограничений правила DELETE |
-633 | правило DELETE должно быть правилом DELETE |
-634 | правило DELETE не должно быть каскадным |
-635 | правила DELETE не могут быть разными или не могут быть установлены равными нулю |
-636 | диапазоны, указанные для раздела part-num, недействительны |
-637 | повторяющееся ключевое слово или предложение с ключевым словом |
-638 | таблица имя-таблицы не может быть создана, потому что определение столбца отсутствует |
-639 | Обнуляемый столбец внешнего ключа с правилом DELETE для установки null не может быть столбцом ключа секционированного индекса |
-640 | Строка locksize не может быть указана, поскольку таблица в этом табличном пространстве имеет индекс типа 1 |
-642 | слишком много столбцов в уникальных ограничениях |
-643 | ограничение проверки или значение выражения для столбца индекса превышает максимально допустимую длину ключевого выражения |
-644 | неверное значение, указанное для ключевого слова или предложения ключевое слово или предложение в инструкции stmt-type |
-645 | WHERE NOT NULL игнорируется, потому что индексный ключ не может содержать нулевые значения |
-646 | таблица имя-таблицы не может быть создана в указанном табличном пространстве имя-табличного-пространства, поскольку оно уже содержит таблицу |
-647 | bufferpool bp-name для неявного или явного табличного пространства или имя индексного пространства не было активировано |
-650 | оператор alter не может быть выполнен, код причины авторское право 2014 TheAmericanProgrammer.com Несанкционированное копирование запрещено |
-651 | описание таблицы превышает максимальный размер дескриптора объекта. |
-652 | нарушение установленной установки процедура редактирования или проверки имя-процесса |
-653 | таблица имя-таблицы в многораздельном табличном пространстве имя-пространства недоступно, поскольку ее многораздельный индекс не был создан |
-655 | команда create или alter stogroup недействительна, потому что группа хранения будет иметь как определенные, так и неспецифические идентификаторы томов |
-658 | объект-тип нельзя отбросить с помощью оператора |
-660 | index имя-индекса не может быть создано или изменено в многораздельном табличном пространстве имя-пространства, поскольку не указаны ограничения на ключи |
-661 | объект-тип имя-объекта не может быть создан в многораздельном табличном пространстве имя-пространства, поскольку количество спецификаций разделов не равно количеству разделов табличного пространства |
-662 | многораздельный индекс нельзя создать в табличном пространстве, или табличное пространство не может управляться индексом. табличное пространство имя-пространства, код-причины |
-663 | количество предельных значений ключа равно нулю или больше, чем количество столбцов в ключе индекса index-name |
-664 | внутренняя длина полей ограничительного ключа для секционированного индекса превышает длину, установленную менеджером индекса |
-665 | предложение раздела в операторе alter опущено или недействительно |
-666 | Объект stmt-verb не может быть выполнен, потому что функция выполняется |
-667 | индекс кластеризации для многораздельного табличного пространства нельзя отбросить явно |
-668 | столбец не может быть добавлен в таблицу, поскольку в таблице есть процедура редактирования, определенная с учетом чувствительности атрибута строки |
-669 | объект не может быть удален явно. причина-код причины |
-670 | длина записи таблицы превышает ограничение на размер страницы |
-671 | атрибут буферного пула табличного пространства нельзя изменить, как указано, потому что это изменит размер страницы табличного пространства |
-672 | удаление операции запрещено для таблицы имя_таблицы |
-676 | физические характеристики индекса несовместимы с указанным утверждением. заявление не удалось. причина-код причины |
-677 | недостаточно виртуальной памяти для расширения буферного пула |
-678 | константа, указанная для ключа ограничения индекса, должна соответствовать типу данных типа данных соответствующего столбца имя-столбца |
-679 | имя объекта не может быть создано, потому что на объекте ожидается перетаскивание |
-680 | указано слишком много столбцов для таблицы, представления или табличной функции |
-681 | column имя-столбца с нарушением процедуры установки поля. rt: код-возврата, rs: код-причины, msg: токен-сообщения |
-682 | поле процедуры имя-процедуры не может быть загружено |
-683 | спецификация для столбца, отдельного типа, функции или элемента данных процедуры содержит несовместимые предложения |
-684 | длина строки начала списка констант слишком велика |
-685 | недопустимый тип поля, имя-столбца |
-686 | столбец, определенный с помощью процедуры поля, не может сравниваться с другим столбцом с другой процедурой поля |
-687 | несравненные типы полей |
-688 | неверные данные, возвращенные из процедуры поля, имя-столбца, msgno |
-689 | слишком много столбцов, определенных для зависимой таблицы |
-690 | утверждение отклонено поддержкой контроля определения данных. причина-код причины |
-691 | требуемая таблица регистрации имя-таблицы не существует |
-692 | требуемый уникальный индекс имя-индекса для таблицы регистрации ddl имя-таблицы не существует |
-693 | имя столбца столбца в таблице регистрации ddl или имя индекса не определены должным образом |
-694 | оператор схемы не может быть выполнен, потому что в таблице регистрации ddl имя таблицы ожидает отбрасывание |
-694 | Оператор ddl не может быть выполнен, потому что в таблице регистрации ddl ожидается удаление |
-695 | указана недопустимая метка безопасности для столбца метки защиты в таблице имя-таблицы |
-696 | определение триггера имя-триггера включает недопустимое использование имени корреляции или имени таблицы перехода. код причины = код причины |
-697 | старые или новые имена корреляции не допускаются в триггере, определенном с помощью предложения for each statement. Имена old_table или new_table не допускаются в триггере с предложением before. |
-747 | Таблица недоступна. |
-803 | Повторяющийся ключ при вставке или обновлении. |
-804 | Ошибка во входных параметрах для оператора SQL. |
-805 | DBRM или пакет не найден в плане. |
-811 | В SELECT INTO получено более одной строки. |
-818 | План и программа: несовпадение отметок времени. |
-904 | Недоступный ресурс. Кто-то другой блокирует ваши данные. |
-911 | Тупик или тайм-аут. Откат сделан. |
-913 | Тупик или тайм-аут. Отката нет. |
-922 | Требуется авторизация. |
-924 | Внутренняя ошибка соединения DB2. |
-927 | Вызывается языковой интерфейс, но соединение не установлено. |
-955 | Память сортировки не может быть выделена для обработки оператора. |
-964 | Место в журнале транзакций исчерпано или временно увеличилось количество активных транзакций. |
-998 | Ошибка произошла во время транзакции или эвристической обработки. |
-7008 | Указанный объект недопустим для запрошенной операции. |
-10330 | Отказано в разрешении на изменение базы данных. Обратитесь к системному администратору. |
-30090 | Удаленная операция недопустима для среды выполнения приложения. |
Положительные значения (предупреждения)
+98 | Оператор динамического SQL заканчивается точкой с запятой |
+100 | Строка не найдена или конец курсора. |
+222 | Попытка получить строку в инструкции DELETE. |
+223 | Попытка получить строку в операторе UPDATE. |
+231 | FETCH после BEFORE или AFTER, но не в допустимой строке. |
+304 | Значение с типом данных (тип данных 1) не может быть присвоено переменной хоста, потому что значение находится вне диапазона переменной хоста в позиции (номер позиции) с типом данных (тип данных 2) |
+354 | Оператор выборки набора строк мог вернуть одну или несколько строк данных. однако также было обнаружено одно или несколько условий предупреждения. используйте оператор получения диагностики для получения дополнительных сведений об обнаруженных условиях |
+562 | Предоставление привилегии было проигнорировано, поскольку получатель уже имеет привилегию от лица, предоставившего право. |
+802 | Нулевой индикатор был установлен на -2 в качестве арифметического. |
Рекомендации
- "DB2 Версия 9.1 для кодов z / OS" (PDF). Сентябрь 2013.
- "Описание и решения DB2 SQL CODE".
- «Коды SQL». Сентябрь 2013.