CTAS вывод из COPY INTO - PullRequest
       19

CTAS вывод из COPY INTO

0 голосов
/ 14 марта 2019

команда copy into возвращает выходной набор данных .

CTAS может создать таблицу из результатов запроса.

объединениево-вторых, мы ожидаем получить список загруженных файлов в новую таблицу.

CREATE TABLE MY_LOADED_FILES
AS
COPY INTO mytable
FROM @my_int_stage;

Однако это возвращает:

Ошибка компиляции SQL: синтаксическая ошибка, строка 3 впозиция 0 неожиданное «копирование».

Что я делаю не так?

1 Ответ

3 голосов
/ 15 марта 2019

К сожалению, вы не можете поместить оператор COPY INTO в другой оператор. Однако есть способ сделать это, используя функцию result_scan , чтобы вернуть результаты предыдущего запроса.

copy into test_database.public.test_table from @my_int_stage;

create temporary table test_database.public.test_table_results as (
  select * from table(result_scan(LAST_QUERY_ID()))
);

Конечно, вам нужно убедиться, что второй запрос выполняется в том же сеансе, что и оператор копирования, а также, что он выполняется непосредственно после оператора копирования. В качестве альтернативы вы можете использовать идентификатор запроса с result_scan.

Если вы хотите посмотреть, какие файлы были загружены, почему бы вам просто не взглянуть на copy_history таблицы?

...