Приложение 13. Коды исключений системы исполнения хранимых процедур и триггеров
Коды всех исключений (системных и пользовательских), возвращаемых системой исполнения хранимых процедур и триггеров, имеют отрицательное значение. С помощью этого признака их можно, при необходимости, отделить от кодов завершения, возвращаемых ядром СУБД ЛИНТЕР, которые всегда имеют положительное значение.
Имя | Код | Причина исключения | Комментарий | |||
---|---|---|---|---|---|---|
EXC_NONE | 0 | Нормальное завершение | ||||
EXC_DIVZERO | -2 | Деление на нуль | ||||
EXC_UNDEFPROC | -3 | Неизвестная процедура | В операторе вызова процедуры CALL PROC указано имя несуществующей в БД процедуры | |||
EXC_BADPARAM | -4 | Неправильный параметр | Несоответствие количества или типов данных объявленных и переданных параметров | |||
EXC_BADINDEX | -5 | Неправильный индекс | Для типа данных BYTE[i] использован недопустимый номер элемента | |||
EXC_BADRETVAL | -6 | Неправильное возвращаемое значение | Несоответствие типа данных объявленного и переданного выходного параметра | |||
EXC_NULLDATA | -7 | Недопустимое использование NULL-значений | В арифметической операции или операции сравнения (на неравенство) один из операндов имеет NULL-значение | |||
EXC_NOMEM | -8 | Нет свободной памяти | Исчерпана свободная дисковая или оперативная память системы исполнения хранимых процедур и триггеров. Эта ситуация возникает, как правило, при неограниченном рекурсивном вызове процедуры (триггера) | |||
EXC_BADCURSOR | -9 | Неправильный курсор | Несоответствие между объявленным курсором и фактически выполненным SELECT-запросом (по количеству выбираемых полей или по типам данных) | |||
EXC_CURNOTOPEN | -10 | Курсор не открыт | Попытка выполнить операторы FETCH, CLOSE для неоткрытого курсора | |||
EXC_BADCODE | -11 | Плохой код процедуры | Испорчен или не соответствует данной версии СУБД ЛИНТЕР оттранслированный код процедуры (триггера). Для исправления ошибки следует заново оттранслировать процедуру (триггер) | |||
EXC_TRIGQUERY | -12 | Зарезервирован | ||||
EXC_ APPENDNOTSTARTED | -14 | Пакетное добавление не активировано | Попытка выполнить команду PUTM или END APPEND без предварительного выполнения команды START APPEND | |||
EXC_ QUERYWHENAPPEND | -15 | Недопустимая операция при пакетном добавлении | Подан запрос, отличный от PUTM и END APPEND, в процессе пакетного добавления | |||
EXC_ APPENDACTIVE | -16 | Повторное инициирование пакетного добавления | Попытка повторно выполнить команду START APPEND, когда пакетное добавление уже идет | |||
EXC_ APPLICATIONERROR | -17 | Зафиксировано пользовательское исключение | Исключение сгенерировано вызовом RAISE_ERROR() | |||
EXC_INVTRSTATE | -18 | Ошибка в выполнении транзакционного оператора в хранимой процедуре | Проблемы при выполнении в хранимых процедурах операторов BEGIN TRANSACTION, COMMIT, ROLLBACK | |||
EXC_CUSTOM | -100 | Реально данное исключение не генерируется | Определяет границу системных и пользовательских исключений | |||