【问题标题】:SQL Compilation error while loading CSV file from S3 to Snowflake将 CSV 文件从 S3 加载到 Snowflake 时出现 SQL 编译错误
【发布时间】:2021-08-11 06:00:26
【问题描述】:

我们在将 csv 文件从 S3 加载到 Snowflake 时遇到以下问题。

SQL 编译错误:插入列值列表与期望 7 但得到 6 的列列表不匹配

我们已尝试从表中删除该列并再次尝试,但这次显示的是 expecting 6 but got 5

以下是我们用于舞台创建和复制命令的命令。

create or replace stage mystage
url='s3://test/test'
STORAGE_INTEGRATION = test_int
file_format = (type = csv FIELD_OPTIONALLY_ENCLOSED_BY='"'  COMPRESSION=GZIP);


copy into mytable
from  @mystage
MATCH_BY_COLUMN_NAME = CASE_INSENSITIVE;
FILE_FORMAT = (TYPE = CSV  FIELD_OPTIONALLY_ENCLOSED_BY='"' COMPRESSION=GZIP error_on_column_count_mismatch=false TRIM_SPACE=TRUE NULL_IF=(''))
FORCE = TRUE
ON_ERROR = Continue
PURGE=TRUE;

【问题讨论】:

  • 请显示您的列名/模式
  • 感谢 Mitch 的回复,由于安全原因,我们无法显示对象名称。 :)
  • 那么我怀疑你会得到很多帮助。
  • 您想查看表格中的列名及其数据类型吗?
  • 您的 COPY INTO 命令中间有一个分号 (;),这正常吗? ... MATCH_BY_COLUMN_NAME = CASE_INSENSITIVE; FILE_FORMAT = ...

标签: snowflake-cloud-data-platform snowflake-schema


【解决方案1】:

您不能对 CSV 文件使用 MATCH_BY_COLUMN_NAME,这就是您收到此错误的原因。

以下数据格式支持此复制选项:

  • JSON
  • Avro
  • 兽人
  • 镶木地板

https://docs.snowflake.com/en/sql-reference/sql/copy-into-table.html

【讨论】:

  • 谢谢阿蒂尔。删除此选项 MATCH_BY_COLUMN_NAME 后问题得到解决
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-19
  • 1970-01-01
  • 2017-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多