ACTION
DEFINE ACTION
Задает именованное действие, которое представляют собой параметризуемый блок из нескольких выражений верхнего уровня.
Синтаксис
DEFINE ACTION
— объявление действия.- Имя действия, по которому объявляемое действие доступно далее для вызова.
- В круглых скобках — список имен параметров.
- Ключевое слово
AS
. - Список выражений верхнего уровня.
END DEFINE
— маркер последнего выражения внутри действия.
Один или более последних параметров могут быть помечены знаком вопроса ?
как необязательные. Если они не будут указаны при вызове, то им будет присвоено значение NULL
.
DO
Выполняет ACTION
с указанными параметрами.
Синтаксис
DO
— выполнение действия.- Именованное выражение, по которому объявлено действие.
- В круглых скобках — список значений для использования в роли параметров.
EMPTY_ACTION
— действие, которое ничего не выполняет.
Пример
DEFINE ACTION $hello_world($name, $suffix?) AS
$name = $name ?? ($suffix ?? "world");
SELECT "Hello, " || $name || "!";
END DEFINE;
DO EMPTY_ACTION();
DO $hello_world(NULL);
DO $hello_world("John");
DO $hello_world(NULL, "Earth");
BEGIN .. END DO
Выполнение действия без его объявления (анонимное действие).
Синтаксис
BEGIN
;- Список выражений верхнего уровня;
END DO
.
Анонимное действие не может содержать параметров.
Пример
DO BEGIN
SELECT 1;
SELECT 2 -- здесь и в предыдущем примере ';' перед END можно не ставить
END DO