我尝试在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')
有什么建议吗?
答案 0 :(得分:1)
使用;
\copy (select * from clickthru.train limit 10) to 'c:\\me\\psql_test.csv' DELIMITER ',' CSV HEADER;
答案 1 :(得分:0)
这里有几个问题
-c
参数传递:psql -U postgres -c '... query ...'
COPY
和\copy
的工作方式不同。 COPY在服务器磁盘空间上运行,\ copy在客户端磁盘空间上运行。如果您同时在两台计算机上运行,则区别在于COPY将以postgres
用户的身份运行,而\ copy将以运行脚本的用户身份运行。;
中有多余的分号(...COPY (select * from clickthru.train limit 10;)...
)