【发布时间】:2022-09-29 21:10:37
【问题描述】:
我的 CSV 文件中有一行,如下所述
\"TEXT\"|\"123584543\"||||\"Sherly\"||\"E\'Sheryl\"|||\"DOCT\"||\"DC\"||||| \"AC\"|||||||||||
我正在尝试使用以下查询创建舞台:
Create or Replace file format test_stg
type = CSV
RECORD_DELIMITER = \'\\n\'
FIELD_DELIMITER = \'|\'
FIELD_OPTIONALLY_ENCLOSED_BY = \'\\042\'
SKIP_HEADER=1
empty_field_as_null = true
ESCAPE = \"\';
When I run the above query I\'m getting error which I have mentioned below:
**SQL compilation error: value [\\\"] for parameter \'FIELD_OPTIONALLY_ENCLOSED_BY\' conflict with parameter \'ESCAPE\'**
当我尝试以下查询时,它正在成功执行。
create or replace file format test_stg1
type = csv
record_delimiter = \'\\n\'
field_delimiter = \'|\'
skip_header = 1
null_if = (\'NULL\', \'null\')
empty_field_as_null = true
FIELD_OPTIONALLY_ENCLOSED_BY = \'0x22\';
此查询成功执行。但是当我运行 COPY 命令时,我得到一个不寻常的错误 - 找到字符而不是字段分隔符 \'|\'。
任何人都可以指导解决这个问题吗?
谢谢 :)
-
您的源文件是否以 UTF-8 编码?如果没有,您可能需要在文件格式上设置
encoding选项。这是看到此错误的原因之一。支持的编码在此页面上(向下滚动大约一半)docs.snowflake.com/en/sql-reference/sql/create-file-format.html -
是的,源文件以 UTF-8 编码
-
我相信如果您删除
escape = \"\'或将其改为escape = NONE,第一个语句会很好。问题似乎是您的转义和您的 field_optionally_enclosed_by 是同一个字符。根据您的示例,您不需要定义转义字符。 -
我仍然收到错误消息 - 找到字符 \'D\' 而不是字段分隔符 \'|\'
标签: snowflake-cloud-data-platform