【问题标题】:SnowSQL - Validation -SnowSQL - 验证 -
【发布时间】:2019-12-13 14:29:13
【问题描述】:

我正在关注本教程: https://docs.snowflake.net/manuals/user-guide/data-load-external-tutorial-resolve.html

尝试“通过查询 ID 返回错误并将结果保存到表中以供将来参考”

错误为“文件(11)中的列数与对应表(10)的列数不匹配,使用文件格式选项error_on_column_count_mismatch=false忽略此错误”

这与教程相匹配,因此我按照教程查找查询 ID 并将其输入到下面语句中的 query_id 占位符中:

create or replace table save_copy_errors as select * from table(validate(mycsvtable, job_id=>'<query_id>'));

但它不会保存错误,而是返回一个新错误:

002018 (22023): SQL compilation error:
Invalid argument [Invalid Job UUID provided.] for table function. Table function
 argument is required to be a constant.

不知道如何解决这个问题,因为我觉得我只是在正确地反映教程

【问题讨论】:

    标签: sql snowflake-cloud-data-platform


    【解决方案1】:

    本教程对我有用。您是否从 Web 界面历史记录选项卡中获取了查询 ID?你确定它是正确的吗?您还可以使用此查询从 sql 工作表中的历史记录视图中查询它:

    select query_id, query_text
    from table(information_schema.query_history_by_session())
    where query_type='COPY'
    order by start_time desc limit 10;
    

    确保您从 COPY 命令行 (query_type='COPY') 获取查询 ID,并在 copy 命令和 validate 函数参数中指定相同的表名(必要时 + 架构)。

    【讨论】:

    • 除了 Veikko 的优秀建议之外,还有一些其他选项可以在不使用 GUI 的情况下捕获查询 id: 1) 使用 last_query_id ("select last_query_id();") 2) 使用会话变量并选择来自历史记录的匹配查询: set query_id = (select query_id from table(information_schema.query_history_by_session (result_limit=>5)) where query_text like 'update%' order by start_time limit 1);创建或替换表行程为 (select * from trips before (statement => $query_id));
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-08
    相关资源
    最近更新 更多