Инструменты пользователя

Инструменты сайта


create_exception

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Both sides previous revision Предыдущая версия
Следущая версия
Предыдущая версия
create_exception [2008/01/10 16:34]
193.110.114.157
create_exception [2008/01/10 16:58] (текущий)
Строка 1: Строка 1:
 +====== CREATE EXCEPTION ======
  
 +
 +
 +===== Версии сервера =====
 +Firebird v0.9       ​Firebird v1.0       ​Firebird v1.5       ​Firebird v2.0 
 +
 +===== Формат =====
 +{CREATE [OR ALTER] | RECREATE} EXCEPTION //name// **'​message'​**;​
 +
 +
 +===== Описание =====
 +Создает исключение определяемое пользователем с именем //name// и с текстом **'​message'​** для дальнейшего вызова этого исключения в хранимых процедурах и триггерах.
 +Доступно в DSQL и в ISQL.
 +
 +
 +===== Пример =====
 +для примера можно изучить процедуру SHIP_ORDER базы employee.
 +
 +создание исключения
 +  CREATE EXCEPTION ORDER_ALREADY_SHIPPED 'Order status is "​shipped."';​
 +
 +
 +вызов по условию
 +  IF(ord_stat = '​shipped'​)THEN
 +  BEGIN
 +    EXCEPTION order_already_shipped;​
 +  END
 +
 +вызов по условию с заменой сообщения
 +  IF(ord_stat = '​shipped'​)THEN
 +  BEGIN
 +    EXCEPTION order_already_shipped 'Order status is "'​||ord_stat||'"';​
 +  END
 +
 +
 +подмена стандартного исключения
 +  CREATE EXCEPTION COUNTRY_EXIST '';​
 +  CREATE PROCEDURE ADD_COUNTRY  ​
 +  as
 +  begin
 +    insert into country (country, currency)
 +      values ('​Canada',​ '​CdnDlr'​);​
 +    when sqlcode -803 do exception COUNTRY_EXIST '​Такая страна уже добавлена!';​
 +  end
 +
 +===== См. также =====
 +[[EXCEPTION]], ​ [[DROP EXCEPTION]], ​ [[ALTER EXCEPTION]], ​ [[RECREATE EXCEPTION]]
 +
 +===== Источник =====
 +%Firebird%\doc\sql.extensions\README.exception_handling ​
create_exception.txt · Последние изменения: 2008/01/10 16:58 (внешнее изменение)