избежать двойных кавычек в снежинке - PullRequest
0 голосов
/ 05 марта 2020

Я пытаюсь загрузить данные, используя команду copy в команду. Поле имеет специальный символ в качестве значения \", но 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"                                                                                                                                         
 ; 

1 Ответ

2 голосов
/ 06 марта 2020

Грубый пример, но ниже работает для меня. Дайте мне знать, если вы ищете другой выход.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...