Sql 复制csv时的转义字符

Sql 复制csv时的转义字符,sql,shell,csv,copy,escaping,Sql,Shell,Csv,Copy,Escaping,我有一个sql脚本,打算将数据从postgres和spool导出到一个csv文件中,在我将随机样本添加到行中之前,该文件一直运行良好 这是随机的代码 \COPY (select accountid, to_char(createtime,'YYYY-MM-DD HH24:MI:SS.ms') from accounts random()< 0.01 limit 1000) to '/home/oracle/scripts/accounts_p.csv' WITH DELIMITER ','

我有一个sql脚本,打算将数据从postgres和spool导出到一个csv文件中,在我将随机样本添加到行中之前,该文件一直运行良好

这是随机的代码

\COPY (select accountid, to_char(createtime,'YYYY-MM-DD HH24:MI:SS.ms') from accounts random()< 0.01 limit 1000) to '/home/oracle/scripts/accounts_p.csv' WITH DELIMITER ',' NULL AS ' '
运行此sql脚本时出现错误消息:

psql:accounts_sample_p.sql:1: \copy: ERROR:  syntax error at or near ")"
LINE 1: ...from accounts random ( ) < 0.01 l...

                              ^
显然,它不喜欢这样的天气。尝试将转义字符与\before和before一起使用,但没有帮助


有谁能给我一个如何克服这个问题的建议吗?谢谢。

您的SELECT语句中似乎缺少一个“WHERE”。i、 e:

select accountid, to_char(createtime,'YYYY-MM-DD HH24:MI:SS.ms') from WHERE accounts random()< 0.01 limit 1000
如果您在性能方面遇到困难,可以在此处找到在PostgreSQL中选择随机集的其他方法:


非常感谢。多么令人尴尬的错误!