从远程select查询中获取一个csv文件

我有一个客户端Windows主机想连接到Postgres数据库,发出一个select查询,并返回该查询到Windows主机一个CSV文件。

我知道Postgres有一个可以工作的复制命令。

copy (SELECT * from foo) To '/tmp/forDavid.csv' with CSV DELIMITER ','; 

而这个客户将每天访问这个SELECT查询。 客户端Windows主机和Postgres数据库位于内部networking上。

我想避免使用PHPMyAdmin,因为他不聪明,我想这是尽可能简单。 我知道Perl,但这将涉及安装Perl客户端Windows主机,我不想这样做。

这个任务最简单的解决scheme是什么?

这里你要做的是使用COPY ... TO STDOUTforms的COPY,然后捕获输出,然后捕获本地系统或应用程序的输出,并将其写入本地文件。 一个简单的例子,从命令行使用psql(不使用psql的\copy东西,不需要设置分隔符为逗号,因为这是CSV输出的默认值):

psql -U ejones -h remote_host.com -c "COPY (SELECT * FROM foo) TO STDOUT CSV;" somedb > /tmp/forDavid.csv

https://www.postgresql.org/docs/9.5/static/sql-copy.html