我在(.sql)文件中有一个查询" Provider.sql" 。查询是,
select
P.ID AS P_ID,
P.LASTNAME AS L_N,
P.FIRST_NAME AS F_N,
FROM
PROVIDER P
如何导出此" Provider.sql"的输出?提交给' |'分隔文本文件?
P_ID | L_N | F_N 1个| FRASER | SCOTT
我可以从" PGADMIN III"手动将输出导出到文件。
但是我想使用PSQL自动执行此操作。
将此.sql文件的输出发送到带有分隔符的文本文件的最佳方法是什么?
你能帮我举个例子吗?
答案 0 :(得分:2)
psql
可以本地执行您想要的操作 - 只需在安静,不对齐,仅元组模式下运行它:
$ psql -qAt -F '|' -c 'SELECT x, x FROM generate_series(1,10) x;'
1|1
2|2
3|3
4|4
5|5
6|6
7|7
8|8
9|9
10|10
如果要将记录分隔符从换行更改为其他内容,请使用-R
。
要写入文件,请重定向标准输出,例如
psql -qAt -F '|' -c 'SELECT x, x FROM generate_series(1,10) x;' > output.csv
或使用-o
:
psql -qAt -F '|' -o output.csv -c 'SELECT x, x FROM generate_series(1,10) x;'
但是,一般来说\copy
更合适。