PostgreSQL-команда
Узел PostgreSQL-команда позволяет выполнить команду на языке SQL или PL/pgSQL.
Узел используется для подготовки хранилища к дальнейшей вставке или обновлению данных, используется для выполнения функций в хранилище, создания, удаления таблиц или быстрого очищения их содержимого с помощью команды TRUNCATE
.
В качестве подключения к хранилищу PostgreSQL используется текущее подключение.
Совет
Используйте узел PostgreSQL-команда для очистки таблицы перед вставкой в неё данных с помощью узла Аналитическая таблица.
Входные данные — отсутствуют.
Выходные данные — отсутствуют.
Для указания настроек соединения с сервером БД к узлу PostgreSQL-команда можно добавить входной порт подключения к PostgreSQL.
Свойства узла
- Название
Укажите название узла, которое будет отображаться на диаграмме процесса и в журнале событий.
- Описание
Укажите произвольное описание узла.
Язык
Выберите язык команды, SQL или PL/pgSQL, процедурный язык SQL.Текст команды
Введите корректный текст команды на выбранном языке.Замечание
При выбранном языке SQL, в хранилище будет выполнена SQL команда, соответствующая введенному Тексту команды.
Замечание
При выбранном языке PL/pgSQL, в хранилище будет выполнена анонимная функция, содержащая Текст команды.
Замечание
Для использования в тексте команды параметров процесса и расчетных параметров воспользуйтесь Переменными.
Переменные
Добавьте вычисляемые переменные, задавая им имя и формулу на языке Колибри. В формуле используйте параметры процесса, расчетные параметры и функции языка Колибри.
В тексте команды на языке SQL обращайтесь к переменной по имени через символ@
, указывая@имя_переменной
.
В тексте команды на языке PL/pgSQL обращайтесь к переменной по имени без дополнительных символов.Замечание
В имени переменной допускаются только латинские буквы, цифры и знак "_". При этом имя переменной не должно начинаться с цифры.
Предупреждение
Узел предназначен для использования экспертом, его некорректная настройка или использование может привести к потере данных или разрушению СУБД.
Требует навыков работы с хранилищем PostgreSQL и устройством хранилища данных, в которых будет выполняться запрос.
Пример команды на языке SQL
Пример команды на языке SQL для очистки аналитической таблицы перед вставкой в неё данных.
Пример команды на языке SQL для удаления данных по условию, содержащему параметр процесса.
Пример команды на языке PL/pgSQL
- Пример команды на языке PL/pgSQL для выполнения вставки строк в таблицу.
Данная настройка узла PostgreSQL-команда соответствует выполнению в хранилище команды:
DO LANGUAGE plpgsql $$ BEGIN
FOR i IN 1..5 LOOP
INSERT INTO online_shop.warehouse(name)
VALUES('Склад №' || i);
END LOOP;
END $$
- Пример команды на языке PL/pgSQL для выполнения вставки строк в таблицу с использованием в вставляемых данных параметра процесса.
Данная настройка узла PostgreSQL-команда соответствует выполнению в хранилище команды:
DO LANGUAGE plpgsql $$ BEGIN
FOR i IN 1..5 LOOP
INSERT INTO online_shop.warehouse(name, comment)
VALUES('Склад №' || i, 'Формирование списка складов (комментарий к загрузке)');
END LOOP;
END $$
Пример команды на языке PL/pgSQL с объявлением локальных переменных в тексте команды.
Данная настройка узла PostgreSQL-команда соответствует выполнению в хранилище команды:
DO LANGUAGE plpgsql $$ BEGIN DECLARE _r record; _mng text[]; BEGIN SELECT ARRAY_AGG(fio) into _mng FROM online_shop.manager; FOR _r IN SELECT name, email FROM security.profile WHERE name != ANY(_mng) LOOP EXECUTE 'INSERT INTO online_shop.manager(fio, email) VALUES(' || quote_literal(_r.name) || ', ' || quote_literal(_r.email) || ')'; END LOOP; END; END $$