我在AWS Redshift仓库表中有以下一行。
name
-------------------
tokenauthserver2018
我通过简单的SELECT
查询来查询
SELECT name
FROM tablename
当我尝试使用来自AWS Redshift的UNLOAD
查询卸载它时,它已成功完成,但给出了奇怪的报价。
"name"
"tokenauthserver2018\
这是我的查询
UNLOAD ($TABLE_QUERY$
SELECT name
FROM tablename
$TABLE_QUERY$)
TO 's3://bucket/folder'
MANIFEST VERBOSE HEADER DELIMITER AS ','
NULL AS '' ESCAPE GZIP ADDQUOTES ALLOWOVERWRITE PARALLEL OFF;
我也尝试在没有ADDQUOTES
的情况下进行卸载,但是得到了以下数据
name
"tokenauthserver2018
这是上面的查询。
UNLOAD ($TABLE_QUERY$
SELECT name
FROM tablename
$TABLE_QUERY$)
TO 's3://bucket/folder'
MANIFEST VERBOSE HEADER CSV NULL AS '' GZIP ALLOWOVERWRITE PARALLEL OFF;
答案 0 :(得分:0)
Amazon支持能够解决此问题,我在这里为有兴趣的人发布答案。
这是由于我的数据中存在NULL字符\0
。由于我无法控制源数据,因此我使用了TRANSLATE
函数来替换\0
字符。
SELECT
TRANSLATE("name", CHR(0), '') AS "name"
FROM <tablename>
参考:https://docs.aws.amazon.com/redshift/latest/dg/r_TRANSLATE.html