Коды возврата SQL используются ежедневно для диагностики программных сбоев в результате вызовов SQL компьютерными программами DB2 . Важной особенностью программ DB2 является обработка ошибок. Диагностика ошибок, содержащая код возврата SQL, содержится в поле SQLCODE в блоке DB2.
SQLCODE больше не является частью стандарта SQL. Стандарт SQL заменил SQLCODE на более подробный SQLSTATE.
Структура области связи SQL (SQLCA) используется в программе DB2 для возврата обратной связи в прикладную программу .
Поле SQLCODE содержит код возврата SQL. Код может быть нулевым (0), отрицательным или положительным:
Вот более полный список 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. |
-224 | FETCH не может сделать INSENSITIVE ЧУВСТВИТЕЛЬНЫМ курсор. |
-229 | Не найден языковой стандарт, указанный в инструкции SET LOCALE. |
-257 | Неявное преобразование в типе данных недопустимо. |
-302 | ЗНАЧЕНИЕ ВХОДНОЙ ПЕРЕМЕННОЙ ИЛИ НОМЕР ПАРАМЕТРА номер позиции НЕДЕЙСТВИТЕЛЬНО ИЛИ СЛИШКОМ БОЛЬШОЕ ДЛЯ ЦЕЛЕВОГО СТОЛБЦА ИЛИ ЦЕЛЕВОГО ЗНАЧЕНИЯ |
-303 | ЗНАЧЕНИЕ НЕ МОЖЕТ БЫТЬ НАЗНАЧЕН ДЛЯ ВЫХОДНОГО НОМЕРА ПЕРЕМЕННОЙ ХОСТА номер позиции ПОТОМУ ЧТО ТИПЫ ДАННЫХ НЕ СРАВНИМАЮТСЯ |
-305 | Необходим нулевой индикатор. |
-311 | Varchar, вставить или обновить. -LEN поле с правильной длиной данных не установлено. |
-313 | Количество указанных переменных хоста не равно количеству маркеров параметров. |
-401 | Типы данных операндов операции несовместимы. |
-404 | Указанный оператор Sql содержит слишком длинную строку. |
-407 | ОБНОВЛЕНИЕ, ВСТАВКА ИЛИ УСТАНОВЛЕННОЕ ЗНАЧЕНИЕ НУЖНО, НО имя столбца ОБЪЕКТА НЕ МОЖЕТ СОДЕРЖАТЬ НУЛЕВЫЕ ЗНАЧЕНИЯ |
-408 | тип данных цели назначения. Имя цели: « |
-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 | Ошибка авторизации. |
-554 | ID авторизации или роль не могут ПРЕДОСТАВЛЯТЬ себе привилегию. |
-601 | Вы пытались создать объект, который уже существует. |
-602 | Слишком много столбцов указано в индексе создания. |
-603 | уникальный индекс не может быть создан, потому что таблица содержит строки, которые дублируются по отношению к значениям идентифицированных столбцов и периодов |
-604 | тип данных определение указывает недопустимый атрибут длины, точности или масштаба. |
-607 | операция или опция операция не определена для этого объекта |
-610 | предупреждение: создание / изменение при объект поместил объект в ожидающий |
-611 | , может быть указан только lockmax 0, если размер блокировки табличного пространства равен табличному пространству или таблица |
-612 | идентификатор - повторяющееся имя |
-613 | первичный ключ, или хэш-ключ, или уникальное ограничение слишком длинное или имеет слишком много столбцов и периодов |
-614 | индекс не может быть создан или изменен, или длину столбца нельзя изменить, потому что сумма внутренних длин столбцов для индекса больше допустимого максимума |
-615 | тип операции не разрешен для пакета в используйте |
-616 | obj-type1 obj-name 1 нельзя отбросить, потому что на него ссылается obj-type2 obj-name2 |
-617 | индекс типа 1 недействителен для таблицы |
-618 | операция операция не разрешено в системных базах данных |
-619 | операция запрещена, поскольку база данных не остановлена |
-620 | ключевое слово ключевое слово в операторе stmt-type не разрешено для пространства-типа в базе данных типа базы данных |
-621 | был обнаружен повторяющийся dbid dbid, который ранее был назначен имени-базе данных |
-622 | для смешанных данных, недопустим, поскольку установка смешанных данных опция нет |
-623 | кластер недействителен для table-name |
-624 | table table-name уже имеет первичный ключ или уникальное ограничение с указанными столбцами и точками |
-625 | таблица имя-таблицы не имеет индекса для обеспечения уникальности первичного или уникального ключа |
-625 | предупреждение: определение таблицы было изменено к неполному |
-626 | оператор alter не может быть выполнен, потому что задана страница не остановлен |
-627 | оператор alter недействителен, потому что табличное пространство или индекс имеет наборы данных, управляемые пользователем |
-628 | предложения являются взаимоисключающими |
-629 | set null не может быть указан, потому что имя внешнего ключа не может содержать нулевые значения |
-630 | ошибка: спецификация WHERE NOT NULL недопустима для индексов типа 1 |
-631 | имя внешнего ключа слишком длинное или имеет слишком много столбцов |
-632 | таблица не может быть определена как зависимая от имени-таблицы из-за ограничений правила DELETE |
-633 | правило DELETE должно быть правилом DELETE |
-634 | правило DELETE не должно быть каскадным |
-635 | правила DELETE не могут отличаться или не может быть установлено значение null |
-636 | диапазоны, указанные для part-num раздела, недействительны |
-637 | duplicate keyword-name или clause |
-638 | таблица имя-таблицы не может быть создана, потому что отсутствует определение столбца |
-639 | столбец внешнего ключа, допускающий значение NULL, с правилом DELETE для set null не может быть столбцом ключа секционированного индекса |
-640 | строка locksize не может быть указана, потому что таблица в этом табличном пространстве тоже имеет индекс типа 1 |
-642 | много столбцов в уникальных ограничениях |
-643 | проверочное ограничение или значение выражения для столбца индекса превышает максимально допустимую длину ключевое выражение |
-644 | недействительно значение, указанное для ключевого слова или предложения keyword-or-clause в инструкции stmt-type |
-645 | WHERE 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. |
-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 в качестве арифметического. |