写作:使用COPY(SELECT * from)到postgres中的权限被拒绝到<filename> DELIMITER&#39;,&#39; CSV HEADER&#34 ;; </filename> <table> </table>

时间:2014-10-04 04:01:02

标签: postgresql

我的要求是从postgres表数据中编写csv,然后我面临以下问题,请提供一些解决此问题的提示。

org.postgresql.util.PSQLException: ERROR: could not open file 

当我使用此查询时

COPY (SELECT * from <table>) To <filename> DELIMITER ',' CSV HEADER";

2 个答案:

答案 0 :(得分:2)

您似乎正在使用PgJDBC。

您很可能希望将the CopyManagerPGConnection获取到COPY来自/来自Java客户端。请参阅this examplePgJDBC API docs

如果您打算与服务器文件系统进行COPY,则必须分配适当的文件系统权限,以便PostgreSQL服务器运行的用户 - 通常postgres - 可以读/写所需的位置。

答案 1 :(得分:0)

将文件保存在每个用户可以使用的位置。在这种情况下,用户为postgres。

Copy (Select * From tablename To '/tmp/file.csv' With CSV DELIMITER ',';