COPY INTO 带有额外列的雪花表

Nic*_*dke 3 sql snowflake-cloud-data-platform

我在雪花中定义了一个表:

GLPCT

BATCH_KEY NUMBER(38,0) NULL
CTACCT VARCHAR(100) NULL
CTPAGE NUMBER(38,0) NULL
Run Code Online (Sandbox Code Playgroud)

和一个看起来像这样的文件:

GLPCT.csv

CTACCT VARCHAR(100)
CTPAGE NUMBER(38,0)
Run Code Online (Sandbox Code Playgroud)

例子:

CTACCT,CTPAGE
"Test Account",100
"Second Account", 200
Run Code Online (Sandbox Code Playgroud)

我的复制到命令如下所示:

BATCH_KEY NUMBER(38,0) NULL
CTACCT VARCHAR(100) NULL
CTPAGE NUMBER(38,0) NULL
Run Code Online (Sandbox Code Playgroud)

问题

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

Nic*_*dke 5

似乎可以使用 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='"');
Run Code Online (Sandbox Code Playgroud)

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