SolveItproblems

SolveITProblems is a project of QFormat.net intellectual club

SolveITProblems это проект интеллектуального клуба QFormat.net

четверг, 15 сентября 2011 г.

Oracle. Прерывание выполнения SQL-скрипта в случае SQL-ошибки.

Салют, товарищи!

Наверняка, вы сталкивались с необходимостью прерывать выполнение sql-скрипта в случае, если вылезет хоть одна SQL-ошибка?
Рассмотрим пример. Пусть в теле скрипта есть команда:

...
insert into subscribers (110, 'John', 'Abdurraxmanov', 'Rodrigues');
...

И пусть на таблицу subscribers наложено ограничение уникальности по трем столбцам: Name, Lastname, Farthername. Пусть к таблице уже существует John Abdurraxmanov Rodrigues. Тогда ясно, что вставка не пройдет, но при обычной прогонке скрипт лишь выведет предупреждение в консоль и продолжит выполнение.

Для того, чтобы скрипт прерывал выполнение при возникновении подобного рода ошибок, нужно вначале скрипта прописать следующую команду:

whenever sqlerror exit sql.sqlcode;
...
insert into subscribers (110, 'John', 'Abdurraxmanov', 'Rodrigues');
...

Теперь скрипт будет прерываться при возникновении ошибок и возвращать управление в консоль.

Кстати говоря, подробнее с этой командой можно ознакомится по ссылке: http://download.oracle.com/docs/cd/B19306_01/server.102/b14357/ch12052.htm

Всем приятного дня!

Комментариев нет:

Отправка комментария