CREATE EXCEPTION
Описание
CREATE EXCEPTION создает исключительную ситуацию, определенную пользователем ошибку, с которой ассоциировано сообщение. Исключительные ситуации могут быть подняты в триггерах и сохраненных процедурах.
Исключительные ситуации глобальны для базы данных. То же самое сообщение или набор сообщений доступно всем сохраненным процедурам и триггерам в приложении. Для примера, база данных может иметь English и French версии тех же самых сообщений исключительных ситуаций и использовать соответствующий набор по необходимости.
Когда исключительная ситуация поднята триггером или сохраненной процедурой, она:
- Завершает триггер или процедуру, которой она вызвана и отменяет любые, выполненные ими действия (прямо или косвенно).
- Выводит сообщение об ошибке.
Исключительные ситуации могут быть отслежены и обработаны в сохраненной процедуре или триггере с помощью инструкции WHEN.
Синтаксис
CREATE EXCEPTION name "<message>";
Аргумент | Описание | |
---|---|---|
name |
Имя, которое ассоциировано с сообщением исключительной ситуации. Должно быть уникальным среди имен исключительных ситуаций в базе данных. | |
"<message>" |
Строка, заключенная в кавычки, содержащая буквенно-цифровые символы и знаки пунктуации. Максимальная длина: 78 символов. |
Примеры
Следующая инструкция создает UNKNOWN_EMP_ID исключительную ситуацию:
CREATE EXCEPTION UNKNOWN_EMP_ID "Invalid employee number or project id.";
Следующий фрагмент из сохраненной процедуры поднимает, предварительно установленную исключительную ситуацию, когда SQLCODE принимает значение -530, которое является нарушением ограничения FOREIGN KEY:
... WHEN SQLCODE -530 DO EXCEPTION UNKNOWN_EMP_ID; ...