我正在尝试使用copy into命令加载数据。字段具有特殊字符作为值\"
,但是
FIELD_OPTIONALLY_ENCLOSED_BY转义\
并在加载时出错
Found character '0' instead of field delimiter ';'
数据:
"TOL";"AANVR. 1E K ZIE RF.\";"011188"
转义第二列值后,应考虑并转义定界符AANVR. 1E K ZIE RF.\";
,但实际上应为AANVR. 1E K ZIE RF.\
。
文件格式
CREATE OR REPLACE FILE FORMAT TEST
FIELD_DELIMITER = ';'
SKIP_HEADER = 1
TIMESTAMP_FORMAT = 'MM/DD/YYYYHH24:MI:SS'
escape = "\\" '
TRIM_SPACE = TRUE
FIELD_OPTIONALLY_ENCLOSED_BY = '\"'
NULL_IF = ('')
ENCODING = "iso-8859-1"
;
答案 0 :(得分:2)
一个粗糙的例子,但是下面的例子对我有用。让我知道您是否正在寻找其他输出。
CREATE OR REPLACE table DOUBLE_TEST_DATA (
string1 string
, varchar1 varchar
, string2 string
);
COPY INTO DOUBLE_TEST_DATA FROM @TEST/doublequotesforum.csv.gz
FILE_FORMAT = (
TYPE=CSV
, FIELD_DELIMITER = ';'
, FIELD_OPTIONALLY_ENCLOSED_BY='"'
);
select * from DOUBLE_TEST_DATA;
答案 1 :(得分:0)
如果需要替换现有表中的双引号,则可以在'\"'
函数中使用replace
synthax。下面提供了示例。
select replace(column_name,'\"','') as column_name from table_name