Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Windows上的R中执行PSQL_Windows_R_Postgresql_Psql_Greenplum - Fatal编程技术网

在Windows上的R中执行PSQL

在Windows上的R中执行PSQL,windows,r,postgresql,psql,greenplum,Windows,R,Postgresql,Psql,Greenplum,我一直在尝试在RStudio的R中从system()执行PSQL。我的路径中有PSQL设置,可以从cmd行执行PSQL。我一辈子都想不出在windows上从R中执行psql的正确方法。我有ubuntu环境提供的代码。在此之前,我没有使用过system(),对这一特定问题的研究一直没有成功 最困难的部分是在R中执行系统后没有收到任何输出。我尝试了一些不同于查看?系统的设置。没有运气 这段代码应该执行一个简单的sql语句,并将输出传递到本地文件。最终,在应用程序中包含动态元素将更加健壮。让基础工作起

我一直在尝试在RStudio的R中从system()执行PSQL。我的路径中有PSQL设置,可以从cmd行执行PSQL。我一辈子都想不出在windows上从R中执行psql的正确方法。我有ubuntu环境提供的代码。在此之前,我没有使用过system(),对这一特定问题的研究一直没有成功

最困难的部分是在R中执行系统后没有收到任何输出。我尝试了一些不同于查看?系统的设置。没有运气

这段代码应该执行一个简单的sql语句,并将输出传递到本地文件。最终,在应用程序中包含动态元素将更加健壮。让基础工作起来似乎是最难的部分

system(paste("export PGPASSWORD=db_password;psql -h db_host -d db_name -c 'copy(select * from large_table limit 1000) to stdout csv' > C:/temp_data/db_test.dat", sep=""))
我很好奇是否有人在R中使用PSQL的windows环境工作。我的greenplum服务器不是本地的

我的echo%PATH%包括C:\Program Files(x86)\pgAdmin III\1.12
包括在系统变量和用户变量中。

您的命令存在一些问题

  • system
    不能与重定向一起使用,必须使用
    shell
  • 不能在Windows中使用单引号引用命令,必须使用双引号
  • 要连接命令,请使用
    &
    运算符,而不是
    类似于Unix
因此,您的命令如下所示(似乎有必要将其包含在一行中):


对于我的问题,我简化了粘贴中的字符串,因此使用粘贴一个字符串可能看起来很奇怪。
export
不是Windows上的命令。您可能需要设置
set
。您还可以使用设置密码[用于
postgres
或其他用户]。这可能是。请注意,您的pgAdmin非常古老。如果db版本是8.2.15,那么pgAdmin版本就不重要了。最新版本对旧版本是否更有效?是的,我考虑了RPostgresql,并使用了PivotalR,因为greenplum是在pivotal之上构建的。我尝试这种方法的原因是为了将数据推送到表中。出于安全原因,存在某些限制。我有30分钟的时间来完成这个过程。我听说psql是实现这一点的首选方法。只是需要一个好的测试用例来进行基准测试。嗯,听起来你这样做有很好的理由。您是否尝试了我提供的命令
cmd
?它是否按照您预期的方式工作?如果您想将数据写入数据库,RPostgreSQL还提供了一个
dbWriteTable
函数。shell执行一直工作到:>C:/temp\u data/db\u test.dat。这一行似乎没有任何效果或执行。结果将发布到控制台。shell的输出是否需要特殊的方法保存到文件或一般的R环境?@dotcomken重定向在我的机器上工作。我想我知道发生了什么:把
cmd
cmd<-'set PGPASSWORD=db_password& psql -h db_host -d db_name -c "copy(select * from large_table limit 1000) TO STDOUT CSV;" > C:/temp_data/db_test.dat'
shell(cmd)