COPY INTO失败,因为在数据值中找到了双引号。C周围的两个双引号导致失败-> NE 845“ C” Street。
确切的错误消息是:
找到字符'H'代替字段定界符'|〜'文件'@〜/ FolderX / datafile.dat.gz',第1行,字符107行274598,列“ MY_TABLE” [“ BADCOLUMN”:20]如果您希望在遇到错误,请使用其他值,例如“ SKIP_FILE”或ON_ERROR选项的'CONTINUE'。有关加载的更多信息选项,请在SQL客户端中运行“ info loading_data”。
格式文件定义为:
CREATE FILE FORMAT "DW"."STG".FMT_FILE
COMPRESSION = 'GZIP'
FIELD_DELIMITER = '|~'
RECORD_DELIMITER = '\n'
SKIP_HEADER = 0
FIELD_OPTIONALLY_ENCLOSED_BY = '\042'
TRIM_SPACE = TRUE
ERROR_ON_COLUMN_COUNT_MISMATCH = FALSE
ESCAPE = '#'
ESCAPE_UNENCLOSED_FIELD = 'NONE'
DATE_FORMAT = 'AUTO'
TIMESTAMP_FORMAT = 'AUTO'
ENCODING = 'WINDOWS1253'
NULL_IF = ('\\N');
为什么当数据为:时,在任何值内是否存在双引号,为什么呢?
123|~NE 845 "C" Street|~PULLMAN
在给定格式文件的定义的情况下,无需在任何字符串中添加转义符。此故障似乎是一个错误。
这不是错误。您已经明确要求Snowflake在使用此语句FIELD_OPTIONALLY_ENCLOSED_BY = '\042'
时将双引号识别为将值包含在文件中的一种方式。如果从文件格式中删除该错误(或更改为NONE
),则不应收到所收到的错误。不过,雪花的行为符合预期。