Psql执行SQL脚本导出CSV如何去除多余格式生成标准文件
错误原因
初始命令运行结果不符合预期的原因如下:
- 命令中携带的
-a参数会打印所有执行的SQL语句,导致结果开头出现原始SQL内容 TO STDOUT WITH CSV HEADER DELIMITER ';'属于PostgreSQLCOPY语句的语法,不能直接拼接在psql命令行的-f参数后,无法生效- psql默认输出为对齐美化的表格格式,自带
|、-等装饰分隔符,且默认会在结果末尾输出行数统计信息
可用命令及参数说明
你验证通过的命令已经覆盖了所有必要调整,各参数作用如下:
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
- 去掉了原命令的
-a参数,避免输出原始SQL --no-align:关闭对齐表格模式,移除所有表格装饰分隔符--field-separator=';':指定字段分隔符为分号,符合CSV格式要求--output直接指定输出文件路径,替代重定向操作避免格式异常
可选优化
如果需要保留字段名作为表头、同时彻底关闭末尾的行数统计,可额外添加两个参数:
--pset=header=on:强制输出字段名作为CSV表头--pset=footer=off:关闭结果末尾的行数统计
内容的提问来源于stack exchange,提问作者FeoJun
相关产品推荐
相关产品推荐

