SQL для триггеров и хранимых процедур в InterBase
SQL для триггеров и хранимых процедур в InterBase представляет собой законченный язык программирования для манипулирования данными.
Язык включает:
- инструкции манипуляции данных SQL: добавление, модификация, удаление из базы, выборка данных из базы в список переменных.
- операторы SQL и выражения, включая функции пользователя (UDF – user defined functions), расширение SQL, включающее оператор присвоения, операторы управления последовательностью вычислений, возможность использования собственных и контекстных переменных, операторы генерации событий и исключений (ошибок), а также команды обработки ошибок.
При работе с данными используются следующие операции (перечень дан в порядке убывания их приоритета):
- операция конкатенации (объединения) для строковых данных – "||"
- арифметические операции
* / + –
- операции сравнения
=, ==
<>,!=, ~=, ^= (не равно)
>, <, >=, <=,!>, ~>, ^> (не больше),!<, ~<, ^< (не меньше)
- логические операции
NOT, AND, OR
|
|
Хотя хранимые процедуры и триггеры используются различным образом и в разных целях, они базируются на одном и том же языке. И хранимые процедуры, и триггеры могут использовать любые конструкции языка, за исключением следующих:
- Контекстные переменные допустимы только в триггерах.
- Входные и выходные параметры, а также инструкции SUSPENDиEXIT, которые возвращают значения, применимы только в хранимых процедурах.
Прежде чем продолжить, уточним терминологию.
- Оператор DECLARE – это оператор объявления переменных.
- Блок (<block>) – это один или несколько операторов (<compound_statement>), заключенных в операторные скобки BEGIN END.
- Оператор (<compound_statement>) – это простой оператор (statement) или блок.
- Формализованная запись:
< block>::= BEGIN
< compound_statement>
[ < compound_statement>...] END
< compound_statement>::= {< block> | statement;}
- Простые операторы: оператор присвоения, оператор генерации исключения, оператор вызова процедуры, оператор ветвления IF, оператор цикла FOR, оператор цикла WHILE, оператор генерации события POST_EVENT, операторы SQL INSERT, UPDATE, SELECT, оператор возврата значений выходных параметров SUSPEND, оператор прерывания процедуры EXIT, оператор обработки ошибок WHEN.
- Кроме того, для удобства сопровождения программ в их текст могут быть внесены комментарии.
Рассмотрим подробнее перечисленные операторы.
Синтаксис:
variable = < expression>;
variable – локальная переменная, входной или выходной параметр, контекстная переменная.
<expression> – любое допустимое в SQL выражение, включающее переменные, операторы SQL, пользовательские (UDF) функции и генераторы, выражения в скобках.