假设在AWS docs之后,我想使用
这样的卸载命令unload
(
'SELECT *
FROM table_name
WHERE day = '2019-01-01'
')
to 's3://bucket_name/path'
iam_role 'arn:aws:iam::<aws acct num>:role/<redshift role>'
ADDQUOTES
ESCAPE
DELIMITER ','
GZIP
ALLOWOVERWRITE;
问题是完整查询应加引号,并且在查询中写入字符串文字将在完整查询(作为有效sql)完成之前对字符串进行转义。如何在AWS redshift卸载语句中转义引号?
完全公开,我知道执行此操作的一种方法,但是还没有看到良好的链接或问题,因此我想为其他人的利益发布一个。
答案 0 :(得分:1)
如果您的查询包含引号(例如,用引号引起来),则将文字放在两组单引号之间-您还必须将查询用单引号引起来:
('select * from venue where venuestate=''NV''')
答案 1 :(得分:0)
您可以将查询放在$$符号之间,这样您就不必担心任何引号了
unload
(
$$SELECT *
FROM table_name
WHERE day = '2019-01-01'
$$)
to 's3://bucket_name/path'
iam_role 'arn:aws:iam::<aws acct num>:role/<redshift role>'
ADDQUOTES
ESCAPE
DELIMITER ','
GZIP
ALLOWOVERWRITE;