DECLARE
Объявляет типизированное именованное выражение, значение для которого будет передано параметром отдельно от текста запроса. Параметризация дает возможность отделить разработку аналитического решения задачи от её запуска с различными вариантами входных значений.
Для транзакционной нагрузки использование параметров позволяет избежать перекомпиляции запросов при повторении однотипных вызовов, снижая потребление ресурсов сервера, и исключая время компиляции из общего времени исполнения запроса.
Передача параметров поддерживается в SDK, CLI, и в графических интерфейсах.
Синтаксис
DECLARE $named-node AS data_type;
- Ключевое слово
DECLARE
. $named-node
— имя, по которому можно будет обращаться к переданному значению, должно начинаться с символа$
.- Ключевое слово
AS
. data_type
— тип данных в виде строки в принятом формате.
Допустимы только сериализуемые типы данных:
- Примитивные типы.
- Опциональные типы.
- Контейнеры за исключением
Stream<Type>
. Void
иNull
— поддерживаемые специальные типы.
Пример
DECLARE $x AS String;
DECLARE $y AS String?;
DECLARE $z AS List<String>;
SELECT $x, $y, $z;
Примеры передачи параметров для DECLARE можно найти здесь.