ACTION

DEFINE ACTION

Задает именованное действие, которое представляют собой параметризуемый блок из нескольких выражений верхнего уровня.

Синтаксис

  1. DEFINE ACTION — объявление действия.
  2. Имя действия, по которому объявляемое действие доступно далее для вызова.
  3. В круглых скобках — список имен параметров.
  4. Ключевое слово AS.
  5. Список выражений верхнего уровня.
  6. END DEFINE — маркер последнего выражения внутри действия.

Один или более последних параметров могут быть помечены знаком вопроса ? как необязательные. Если они не будут указаны при вызове, то им будет присвоено значение NULL.

DO

Выполняет ACTION с указанными параметрами.

Синтаксис

  1. DO — выполнение действия.
  2. Именованное выражение, по которому объявлено действие.
  3. В круглых скобках — список значений для использования в роли параметров.

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

Выполнение действия без его объявления (анонимное действие).

Синтаксис

  1. BEGIN;
  2. Список выражений верхнего уровня;
  3. END DO.

Анонимное действие не может содержать параметров.

Пример

DO BEGIN
    SELECT 1;
    SELECT 2  -- здесь и в предыдущем примере ';' перед END можно не ставить
END DO
В этой статье: