简体   繁体   English

psql output csv 文件格式化

[英]Psql output csv file formatting

Trying to make batch file that will get query from script file and put results into csv. Batch file code:尝试制作将从脚本文件中获取查询并将结果放入 csv 的批处理文件。批处理文件代码:

psql -h host -d test -U test -p 5432 -a -q -f C:\Users\test\Documents\my_query.sql TO STDOUT WITH CSV HEADER DELIMITER ';' > C:\Users\test\Documents\res.csv

In result file I'm getting result like this:在结果文件中,我得到这样的结果:

select *

from public.test

limit 3

    id    |    name     | count_01
----------+------------+---------------+
 11021555 | a       |             1 |
 39534568 | b       |             2 |
 11695210 | c       |             3 |

(3 rows)

How to get only script results without rows count and symbols like '|'如何仅获取没有行数和符号(如“|”)的脚本结果or '+' and using ';'或 '+' 并使用 ';' delimetres as in the usual csv file?像通常的 csv 文件中的分隔符?

Working script:工作脚本:

psql -h host -d test -U test -p 5432 -q --quiet --no-align --field-separator=';' --file=C:\Users\test\Documents\my_query.sql --output=C:\Users\test\Documents\res.csv

From PostgreSQL v12 on, you can use the CSV output format of psql :从 PostgreSQL v12 开始,你可以使用psql的 CSV output 格式:

psql --quiet --csv --file=my_query.sql --output=res.csv

--quiet suppresses the psql welcome message. --quiet抑制psql欢迎信息。

Should work with应该与

psql -h host -d dbname -U user -p port -a -q -f my_query.sql -o res.csv --record-separator=',' --csv

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM