0

我正在尝试使用 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"                                                                                                                                         
 ; 
4

2 回答 2

1

如果需要替换现有表中的双引号,可以使用函数中的'\"'语法replace。下面提供的示例。

select replace(column_name,'\"','') as column_name from table_name
于 2020-10-27T15:56:38.880 回答
0

粗略的例子,但以下对我有用。如果您正在寻找不同的输出,请告诉我。

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;

输出: 在此处输入图像描述

于 2020-03-05T21:33:59.083 回答