Согласно документам :
Если исходная таблица содержит 0 строк, то операция COPY не выгружает пустой файл данных; даже не файл, содержащий заголовки столбцов таблицы.
И, похоже, нет способа изменить это поведение.
Однако, прежде чем записывать таблицу в S3, вы можете записать заголовки (как данные), выполнив запрос INFORMATION_SCHEMA . Затем напишите свою таблицу как обычно (с OVERWRITE = TRUE) - и если не будет записано ни одной строки, файл заголовка останется.
UPDATE
Вот как создать заголовок :
select listagg(column_name,',') within group (order by ordinal_position)
from MY_DB.information_schema.columns
where table_schema='MY_SCHEMA' and table_name='MY_TABLE';
Затем вы можете записать его в виде данных в файл CSV следующим образом:
copy into @my_stage/my_table (
select listagg(column_name,',')
within group (order by ordinal_position)
from MY_DB.information_schema.columns
where table_schema='MY_SCHEMA' and table_name='MY_TABLE';
)
file_format = (type=csv compression=none field_delimiter=none)
header=false;