Use psql's copy for a multi-line query
这是从"将PostgreSQL的PL / pgSQL输出保存到CSV文件"的答案中的后续问题。
我需要使用psql的
1 2 | db=> \copy (SELECT 1 AS foo) TO 'bar.csv' csv header COPY 1 |
但是,我有很长的查询,跨越几行。 我不需要显示查询,因为我似乎无法在没有解析错误的情况下延伸过去一行:
1 2 3 4 5 6 7 8 9 10 | db=> \copy ( \copy: parse error at END OF line db=> \copy ( \\ \copy: parse error at END OF line db=> \copy (" \copy: parse error at end of line db=> \copy"( \copy: parse error at END OF line db=> \copy \\ \copy: parse error at END OF line |
是否可以将
我现在的工作解决方案是创建一个临时视图,可以通过多行声明,然后在
1 2 3 4 5 6 7 8 9 | db=> CREATE TEMP VIEW v1 AS db-> SELECT i db-> FROM generate_series(1, 2) AS i; CREATE VIEW db=> \cd /path/TO/a/really/deep/directory/STRUCTURE/ON/client db=> \copy (SELECT * FROM v1) TO 'out.csv' csv header COPY 2 db=> DROP VIEW v1; DROP VIEW |