При выполнении программных объектов пользователь должен иметь возможность оперативно реагировать на возникающие отклонения от нормального процесса их выполнения. Для решения этой задачи разработчики SQL применили механизм обработки исключительных ситуаций. Данный механизм представляет собой прием, обеспечивающий перехват и обработку ошибок и предупреждений. Исключительные ситуации в SQL возникают при выполнении SQL-операторов. Исключительные ситуации представляются в виде кодов возврата, которые формируются после завершения выполнения операторов. Коды возврата одновременно записываются в системные переменные SQLSTATE и SQLCODE. В этих переменных возникновение исключительных ситуаций кодируются по разному. Так в переменной SQLCODE они представляются в виде десятичных чисел. При этом отрицательные значения соответствуют ошибкам, положительные - предупреждениям, а ноль - успешному завершению оператора. Кодирование исключительных ситуаций в переменной SQLSTATE соответствует стандарту SQL/92. При этом коды возврата представляются в виде строк из пяти символов. В переменной SQLSTATE первые два символа составляют код класса ошибок, следующие три символа - код внутри класса. Код "00000" соответствует успешному выполнению оператора. В зависимости от значений кодов возврата может быть принято решение о повторении оператора, прерывания функционирования приложения и т.д.
Примечание. После считывания значения одной из переменных SQLSTATE или SQLCODE, обе они приводятся в состояние отсутствия ошибок.
[1] Джоунс Э., Стивенз Р. К., Плюю Р. Р., Гарретт Р.Ф., Кригель А. Функции SQL. Справочник программиста. - М.: Диалектика. 2006. с. 103.
[2] Дейт К.Дж. Введение в системы баз данных. 6-е изд. - М.: Вильямс. 2000. с. 215.
[3] Д. С. Боуман, С. Л. Эмерсон, М. Дарновски. Практическое руководство по SQL. 3-е издание.- М.: Вильямс. 2001. с 42.
[4] Фаронов В.В. Основы программирования в SQL. - М.: Издатель Молгачева С.В., 2002. с. 116.
[5] Фаронов В.В. Основы программирования в SQL. - М.: Издатель Молгачева С.В., 2002. с. 248.