PSQL (Procedural SQL) — процедурное расширение языка SQL для СУБД Firebird и Interbase.
Это подмножество языка SQL используется для написания хранимых процедур, хранимых функций, пакетов, триггеров и PSQL блоков.
PSQL содержит все основные конструкции классических языков программирования. Кроме того, в него входят немного модифицированные DML операторы (SELECT, INSERT, UPDATE, DELETE и др.).
Элементы PSQL
Процедурное расширение может содержать объявления локальных переменных и курсоров, операторы присваивания, условные операторы, операторы циклов, выброса пользовательского исключений, средства для обработки ошибок, отправки сообщений
(событий) клиентским программам. Кроме того, в триггерах доступны специфичные контекстные переменные, такие как NEW и OLD. В PSQL не допустимы операторы модификации метаданных (DDL операторы).
DML операторы с параметрами
В DML (SELECT, INSERT, UPDATE, DELETE и др.) операторах допустимы только именованные параметры. Если DML операторы содержат именованные параметры, то они должны быть предварительно объявлены как локальные переменные в операторе DECLARE [VARIABLE]
заголовка модуля или доступны во входных или выходных параметрах PSQL модуля. При использовании именованных параметров в DML операторах необходим префикс двоеточия «:», однако в предложении INTO символ двоеточия не обязателен. Префикс двоеточия является необязательным в операторах специфичных для PSQL, таких как операторы ветвления или присваивания. Префикс двоеточия не требуется также при вызове хранимой процедуры с помощью оператора EXECUTE PROCEDURE из другого PSQL модуля.
Транзакции
Хранимые процедуры и функции (в том числе содержащиеся в пакетах) выполняются в контексте той транзакции, в которой они были запущены. Триггеры выполняются в контексте транзакции, в которой выполнялся DML оператор, вызвавший запуск триггера. Для триггеров на событие базы данных запускается отдельная транзакция. В PSQL не допустимы операторы старта и завершения транзакций, но существует возможность запуска оператора или блока операторов в автономной транзакции.
Ссылки
Примечания
|
---|
Типы | |
---|
Концепции | |
---|
Объекты | |
---|
Ключи | |
---|
Компоненты | |
---|
SQL | |
---|