PostgreSQL从远程服务器导出CSV结果

Joh*_*zon 1 csv postgresql bash remote-server

我已经阅读了所有其他解决方案,没有一个适应我的需求,我不使用Java,我没有超级用户权限,我没有在我的服务器中安装API.

我在远程PostgreSQL服务器上有选择权限,我想在其中远程运行查询并将其结果导出到本地服务器中的.csv文件中.

一旦我设法建立与服务器的连接,我首先必须定义数据库,然后是模式,然后是表,这使得以下代码行不起作用:

\copy schema.products TO '/home/localfolder/products.csv' CSV DELIMITER ','

copy (Select * From schema.products) To '/home/localfolder/products.csv' With CSV;
Run Code Online (Sandbox Code Playgroud)

我也尝试了以下bash命令:

 psql -d DB -c "select * from schema.products;" > /home/localfolder/products.csv
Run Code Online (Sandbox Code Playgroud)

并使用以下结果记录它:

-bash:home/localfolder/products.csv:没有这样的文件或目录

如果有人能够对此有所了解,我将非常感激.

ido*_*obr 7

你试过这个吗?我现在没有psql来测试它.

echo “COPY (SELECT * from schema.products) TO STDOUT with CSV HEADER” | psql -o '/home/localfolder/products.csv'
Run Code Online (Sandbox Code Playgroud)

细节:

-o filename   Put  all  output into file filename.  The path must be writable by the client.
echo builtin + piping (|) pass command to psql
Run Code Online (Sandbox Code Playgroud)