将查询结果转换为CSV

时间:2016-04-14 22:05:16

标签: postgresql csv jdbc dropwizard jdbi

我有一个JDBI查询,它从几个表中返回许多列,我需要将这些列写入CSV文件。我怎样才能做到这一点?我有一个REST端点,它接收搜索条件的POST,我正在构建一个查询以触发Postgres数据库。我正在使用Dropwizard和JDBI。

1 个答案:

答案 0 :(得分:2)

使用COPY TO

COPY (SELECT ... ) TO '/path/to/myfile1.csv' FORMAT csv;

如果要写入文件,则需要超级用户权限。 The manual:

  

COPY仅允许数据库超级用户命名文件或命令,   因为它允许读取或写入服务器具有的任何文件   访问权限。

或者您可以直接将输出发送到STDOUT而不保存到文件(可能没有超级用户权限!)。

要在客户端上编写文件(可以与DB服务器分开),请使用封装相同功能的元命令\copy of psql。这是not require superuser privileges

  

这意味着文件可访问性和权限是本地用户的权限,而不是服务器,并且不需要SQL超级用户权限。

详细说明: