R - Postgresql将数据导出为CSV

时间:2015-02-01 19:25:59

标签: sql r postgresql

我尝试在R中编写脚本,将查询从Postgresql数据库导出到csv文件。

如果我从cmd执行此操作,则可以正常工作:

psql -U postgres
\copy (select * from clickthru.train limit 10) to 'c:\\me\\psql_test.csv' with csv header;

然而,当我在R中尝试这个时,看起来它执行(没有错误)但没有生成文件:

system('psql -U postgres COPY (select * from clickthru.train limit 10;) TO "C:\\me\\psql_test.csv" with CSV')

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

使用;

\copy (select * from clickthru.train limit 10) to 'c:\\me\\psql_test.csv' DELIMITER ',' CSV HEADER;

答案 1 :(得分:0)

这里有几个问题

  1. 查询应通过-c参数传递:psql -U postgres -c '... query ...'
  2. COPY\copy的工作方式不同。 COPY在服务器磁盘空间上运行,\ copy在客户端磁盘空间上运行。如果您同时在两台计算机上运行,​​则区别在于COPY将以postgres用户的身份运行,而\ copy将以运行脚本的用户身份运行。
  3. 在您的示例中,查询;中有多余的分号(...COPY (select * from clickthru.train limit 10;)...