R,命令行,write.csv2到文件失败进入任务计划

时间:2015-02-10 02:27:07

标签: r batch-file db2

我正在尝试自动化(在Win7系统上)一个R脚本,用于从DB2数据库读取数据并将其写入文件,以供另一个系统处理。我的代码完全在R gui中运行。所以我写了一个批处理文件来调用这个.r文件并将结果输出到script.out,如下所示。当我双击批处理文件时,一切都成功运行。当我安排任务运行批处理文件时,R代码运行,从DB2数据库收集数据,但每次写入文件都失败,只保存sql查询的头。

R代码:

library(RJDBC)

library(rJava)

jcc = JDBC("com.ibm.db2.jcc.DB2Driver",".../db2jcc4.jar")

conn = dbConnect(jcc,"xxx",user="xxxx",password="xxxx")

bd1 = dbSendUpdate(conn, "set current schema PRODUCCION")

bd1 = dbSendQuery(conn,paste("SELECT *FROM VW_tabla_1"))

dat4<- fetch(bd1, n = -1)

write.csv2(dat4,file = ".../bd1.csv",row.names = F)

dbDisconnect(conn)

批处理文件代码:

\Program Files\R\R-3.0.1\bin\x64\R.exe" CMD BATCH --vanilla --slave "C:\Users\abg\SkyDrive\Documents\dat.R"

谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

这不是一个答案,而是对事物的过长评论。

看起来你在通过在不同条件下尝试调试它的方式很好。我将建议一些接下来的步骤来尝试找出失败的部分。看来写入文件不是问题,所以我将跳过关于不同写作权的所有部分。

  • 尝试将一些文本写入文件,而不是查询结果 - write.csv行以预定方式工作的测试。

  • 尝试虚拟查询,例如select "a",或者虚拟查询在DB2中工作 - 测试您实际连接到数据库

  • 尝试从该表中选择行数并将其写入文件 - 测试表中实际上有行

如果我理解正确,那么其中一个步骤应该会失败,并让您知道下一步要去哪里。祝你好运!

PS。如何安排在Win 7下运行的任务?

答案 1 :(得分:0)

我终于解决了这个问题。在我的sql查询中有特殊字符,例如重音符号,在R gui中这些是可解释的但不在预定任务中,因此解决方案是在sql查询中更改这些特殊字符并且所有运行正常。