带有复制语句的PostgreSQL导出结果,包括返回/换行符

时间:2018-08-17 08:08:54

标签: postgresql

嗨,我需要使用复制语句中的return或换行符导出动态查询结果。

COPY( SELECT 'SELECT now(); '||E'\n'||' REINDEX TABLE "' || schemaname || '"."' || relname || '";' FROM pg_stat_all_tables ORDER BY n_dead_tup DESC)TO 'E:\scripts\maintenance\reindex.sql';

查询本身可以在查询编辑器中正常工作

SELECT 'SELECT now(); '||E'\n'||' REINDEX TABLE "' || schemaname || '"."' || relname || '";' FROM pg_stat_all_tables ORDER BY n_dead_tup DESC 

当我从结果集窗格中复制结果并将其粘贴到任何文本编辑器时,我得到了想要的。但是在COPY语句中,它不起作用。

1 个答案:

答案 0 :(得分:0)

这是因为COPY文本格式将换行符表示为\n

如果您真的想以这种方式编写多行SQL脚本,则可以删除换行符,因为它并不是必需的。

您还可以考虑使用adminpack函数来写入文件。