复制到包含额外列的Snowflake表中 [英] COPY INTO Snowflake Table with Extra Columns

查看:17
本文介绍了复制到包含额外列的Snowflake表中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Snowflake中定义了一个表:

GLPCT

BATCH_KEY NUMBER(38,0) NULL
CTACCT VARCHAR(100) NULL
CTPAGE NUMBER(38,0) NULL

和如下所示的文件:

GLPCT.csv

CTACCT VARCHAR(100)
CTPAGE NUMBER(38,0)

示例:

CTACCT,CTPAGE
"Test Account",100
"Second Account", 200

我的copy into命令如下所示:

copy into GLPCT_POC from 'azure://ouraccount.blob.core.windows.net/landing/GLPCT' credentials=(azure_sas_token='<SAS_TOKEN') file_format=(TYPE=CSV, SKIP_HEADER = 1, FIELD_OPTIONALLY_ENCLOSED_BY='"'); 

问题

由于列号不匹配,Snowflake正在引发错误。如何让Snowflake忽略文件中不存在的列并且不抛出错误?如果有帮助,我可以将BATCH_KEY移到桌子末尾。

推荐答案

似乎可以使用COPY INTO语句指示要插入哪些列,因此我们的语句变为:

copy into GLPCT_POC (CTACCT, CTPAGE) from 'azure://ouraccount.blob.core.windows.net/landing/GLPCT' credentials=(azure_sas_token='<SAS_TOKEN') file_format=(TYPE=CSV, SKIP_HEADER = 1, FIELD_OPTIONALLY_ENCLOSED_BY='"');

我们无法使用上一个答案中提到的转换,因为这是外部文件。

这篇关于复制到包含额外列的Snowflake表中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆