首页 > 解决方案 > Snowflake数据仓库中如何使用内联文件格式从stage查询数据

问题描述

有没有办法从具有内联文件格式的阶段查询数据而不将数据复制到表中

使用COPY INTO 表语句时,我可以指定内联文件格式:

COPY INTO <table>
FROM (
  SELECT ...
  FROM @my_stage/some_file.csv
)
FILE_FORMAT = (
  TYPE = CSV,
  ...
);

COPY INTO但是,在命令之外直接运行相同的选择查询时,同样的事情不起作用:

SELECT ...
FROM @my_stage/some_file.csv
(FILE_FORMAT => (
  TYPE = CSV,
  ...
));

相反,我能做的最好的就是使用预先存在的文件格式:

SELECT ...
FROM @my_stage/some_file.csv
(FILE_FORMAT => 'my_file_format');

但这不允许我在创建查询时以编程方式更改文件格式。我已经尝试了所有可能的语法变化,但现在似乎不支持。

标签: snowflake-cloud-data-platform

解决方案


我不相信这是可能的,但作为一种解决方法,您不能以编程方式创建文件格式,在 SQL 中使用该命名文件格式,然后在必要时删除它吗?


推荐阅读