首页 > 解决方案 > 查询内部阶段 Snowflake

问题描述

按照文档中的步骤,我在 Snowflake 中创建了一个阶段和文件格式,然后使用 PUT 暂存了一个 csv 文件

USE IA;
CREATE OR REPLACE STAGE csv_format_2;
CREATE OR REPLACE FILE FORMAT csvcol26 type='csv' field_delimiter='|';
PUT file://H:\\CSV_SWF_file_format_stage.csv @IA.public.csv_format_2

当我尝试查询暂存对象时

SELECT a.$1 FROM @csv_format_2 (FORMAT=>'csvcol26', PATTERN=>'CSV_SWF_file_format_stage.csv.gz') a

我得到:SQL 错误 [2] [0A000]:不支持的功能“表”。

关于这个错误的任何想法?

标签: snowflake-cloud-data-platformstaging

解决方案


第一个参数应该FILE_FORMAT代替FORMAT

SELECT a.$1 
FROM @csv_format_2 (FILE_FORMAT=>'csvcol26',PATTERN=>'CSV_SWF_file_format_stage.csv.gz') a;

相关:查询暂存文件中的数据

使用具有以下语法的 SELECT 语句查询暂存数据文件:

SELECT [<alias>.]$<file_col_num>[.<element>] [ , [<alias>.]$<file_col_num>[.<element>] , ...  ]
FROM { <internal_location> | <external_location> }
 [ ( FILE_FORMAT => '<namespace>.<named_file_format>', PATTERN => '<regex_pattern>' ) ]
 [ <alias> ]

推荐阅读