复制到包含额外列的Snowflake表中 [英] COPY INTO Snowflake Table with Extra Columns
本文介绍了复制到包含额外列的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屋!
查看全文