当 csv 文件在字符串中包含逗号时,Snowflake 数据库中的复制命令失败

Copy command in Snowflake database fails when csv file has comma in a string

我正在将雪花阶段 table 中的 csv 文件复制到普通雪花 table。

csv 中的某些行在字符串中包含逗号,因此复制命令失败。

COPY INTO TEST_DB.TEST_SCHEMA.USER FROM @user_test/users.csv.gz 
file_format=(TYPE=csv field_delimiter=',' skip_header=0 ) on_error = 'abort_statement'

我收到以下错误

SQL Error [100016] [22000]: Field delimiter ',' found while expecting record delimiter '\n'
  File 'users.csv.gz', line 32, character 54

我也尝试过使用 FIELD_OPTIONALLY_ENCLOSED_BY 这给了我另一个错误

COPY INTO TEST_DB.TEST_SCHEMA.USER FROM @user_test/users.csv.gz 
file_format=(TYPE=csv field_delimiter=',' skip_header=0 FIELD_OPTIONALLY_ENCLOSED_BY = '"') 
on_error = 'abort_statement'

我收到以下错误

SQL Error [100066] [22000]: Found character '\r' instead of record delimiter '\n'
  File 'users.csv.gz', line 32, character 78

csv 中失败的行如下所示

100,True,0,2010-10-07 12:19:42,,400,8,467,"Authority, Mail Service"

我注意到只有带逗号的字符串才用双引号括起来。

这可能是它仍然因 FIELD_OPTIONALLY_ENCLOSED_BY 而失败的原因吗?

终于找到解决办法了。

我用 python 创建的 csv 文件每行之间都有行距。

去掉 csv 中的行距后,FIELD_OPTIONALLY_ENCLOSED_BY ='"' 工作并加载了数据。