Informix Logo


Как я могу остановить SQL-скрипт, если произошла ошибка?

girsch@iname.com (Томас Дж. Гирш):

Если Вы создаете SQL-скрипт в виде текстового файла, Вы можете выполнить его с использованием dbaccess, выполняя:

$ dbaccess <база данных> <sql-файл>

Эта команда выполнит SQL-скрипт без вызова оболочки dbaccess. Обратите внимание, однако, что все операторы скрипта будут выполнены, даже если некоторых в средине скрипта сбойнут! Например, если Вы выполняете этим способом следующий пакет

BEGIN WORK;
INSERT INTO history
SELECT * FROM current WHERE month = 11;
DELETE FROM current WHERE month = 11;
COMMIT WORK;

Если сбой происходит в операторе INSERT, оператор DELETE будет выполнен независимо от результата выполнения INSERT. Затем будет выполнен COMMIT. Это может привести к очень печальным последствиям : Такое поведение dbaccess может быть изменено, установкой недокументированной переменной окружения DBACCNOIGN=1

Informix-FAQ by  David Williams djw@smooth1.demon.co.uk пункт 5.15


Украинская баннерная сеть
 

[Home]

Сайт поддерживается группой пользователей Информикс на Украине.

Hosted by NO-more.