【问题标题】:Query internal stage Snowflake查询内部阶段 Snowflake
【发布时间】:2021-06-28 15:03:32
【问题描述】:

按照文档中的步骤,我在 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-platform staging


    【解决方案1】:

    第一个参数应该是FILE_FORMAT 而不是FORMAT

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

    相关:Querying Data in Staged Files

    使用具有以下语法的 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> ]
    

    【讨论】:

    • 抛出 TABLE 消息的原因是文件格式参数在 SELECT 上的 TABLE OPERATOR 内。由于参数名称未被识别为合法运算符,因此您会得到这个可能令人困惑的响应。
    猜你喜欢
    • 2020-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-01
    相关资源
    最近更新 更多