问题陈述-使用复制命令并定义转义属性进行数据加载时,该语句并未消除数据中的转义字符。前我正在尝试从CSV文件加载数据。该文件在其中一列('EC F&G BREWER \'S INT \'L BEER')中具有以下格式的数据。对此的期望是,加载后应从数据字段中删除数据中的转义字符(即反斜杠“ \”)。
以下是我正在使用的复制语句-
COPY INTO SANDBOX.TEST_SBX.TEST_20200512
FROM @STAGE_NAME/TEST_FILE/
FILE_FORMAT = (FIELD_DELIMITER = ','
RECORD_DELIMITER = '\n'
SKIP_HEADER = 0
FIELD_OPTIONALLY_ENCLOSED_BY = '\047'
TRIM_SPACE = FALSE
ESCAPE ='\134'
ESCAPE_UNENCLOSED_FIELD='\134'
ERROR_ON_COLUMN_COUNT_MISMATCH = FALSE
DATE_FORMAT = 'AUTO' TIMESTAMP_FORMAT = 'AUTO' NULL_IF = ('NULL', 'null', '') )
PATTERN='.*.gz.*'
PURGE=FALSE
ON_ERROR = ABORT_STATEMENT
FORCE = FALSE
RETURN_FAILED_ONLY = FALSE
;
此文件中有许多列的字符字段中带有()反斜杠,并且在加载过程中所有列均被忽略。
我无法切换到手动列选择模式并使用Regexp替换转义字符,我必须使用copy命令而不切换到列选择模式。
我希望以文件格式配置的转义字符得到适当处理(转义),而不必像对待其他数据处理/加载引擎中将其视为转义字符一样,将其视为转换。
[请在此建议我可以做什么。
我尝试完全相同地复制,但仍未得到相同的结果。了解到文件有问题。或导致该问题的帐户级别参数出现问题。
CREATE OR REPLACE TABLE SANDBOX.AAGRA018_SBX.TEXT_FILE_TST
(COL1 VARCHAR(50)
);
TRUNCATE TABLE SANDBOX.AAGRA018_SBX.TEXT_FILE_TST;
COPY INTO SANDBOX.AAGRA018_SBX.TEXT_FILE_TST
FROM @~/Test_File.txt.gz
FILE_FORMAT = (FIELD_DELIMITER = ',' RECORD_DELIMITER = '\n'
SKIP_HEADER = 0 FIELD_OPTIONALLY_ENCLOSED_BY = '\047'
TRIM_SPACE = FALSE ESCAPE ='\\' --ESCAPE_UNENCLOSED_FIELD='\134'
NULL_IF = ('NULL', 'null', '')
)
force=true;
select * from SANDBOX.AAGRA018_SBX.TEXT_FILE_TST;
Data File -
YB MARTHA\'S VINEYARD LOUNGE
EC F&G BREWER\'S INT\'L BEER
This is not giving the desired result
[Snowflake UI Image copy][1]
[1]: https://i.stack.imgur.com/IBgNz.png