Загрузка данных из временных таблиц - Продукт Modus BI
PostgreSQL
При создании временной таблицы вы не можете явно указать схему (schema) для таблицы. Все временные таблицы в PostgreSQL попадают в соответствующую схему с именем pg_temp_xxx,
где «xxx
» — номер сессии (например pg_temp_8
или pg_temp_165
). Схема для сессии создаётся автоматически самим PostgreSQL.
Чтобы выполнить запрос к временной таблице, необходимо указать правильную схему. Это может быть нетривиальной задачей при периодическом обновлении данных, и, скорее всего, потребуется специальная ETL-обработка.
Если выгрузка предполагается единоразовой, определите схему, в которой создана временная таблица, и укажите ее в запросе или шаблоне сценария.
Запрос должен строится следующем образом:
SELECT col1, col2, col-n From pg_temp_xxx.tmp_table_name
где «xxx
» — номер сессии, а tmp_table_name
— наименование временной таблицы.
Для определения схемы временной таблицы можно воспользоваться запросом:
SELECT schemaname FROM pg_catalog.pg_tables where tablename ='tmp_table_name'
MS SQL
После создания все временные таблицы сохраняются в схеме tempdb, которая имеется по умолчанию в MS SQL. Временные таблицы существуют на протяжении сессии базы данных.
Для взаимодействия с временными таблицами MS SQL через ETL, они должны быть глобальными, т.е. при создании указывается два знака ##
.
Так же в запросе указывается схема временной таблицы:
SELECT * FROM tempdb.##tmp_table_name