在雪花中转义双引号

时间:2020-03-05 14:48:33

标签: snowflake-cloud-data-platform snowsql

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

2 个答案:

答案 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;

输出: enter image description here

答案 1 :(得分:0)

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

select replace(column_name,'\"','') as column_name from table_name