使用R中的RJDBC将数据帧插入DB2

时间:2017-04-21 20:21:03

标签: r dataframe db2 rjdbc

如何使用RJDBC包将数据帧从R插入DB2。

我尝试了多种方式,但大多数都失败了。 目前的方法: 使用paste将df转换为查询。 然后使用dbExecute(conn,req[1])获取以下错误

 ([jcc][10103][10941][4.15.134] Method executeQuery cannot be used for update. ERRORCODE=-4476, SQLSTATE=null)

是否需要修复此错误或需要示例代码才能将数据框插入DB2

示例代码:

library(JODBC)
jcc = JDBC("com.ibm.db2.jcc.DB2Driver",
       "C:/Program/Files/IBM/db2jcc4.jar")

#Connection String         
conn = dbConnect(jcc,"jdbc:db2://xx.xxx.xxx.xx:xxxxxx/TESTDB","TESTUsser","XXXXXXX")


req <- paste("INSERT INTO TESTDB1.test (Inc_Number,Group,Resolved_TIME,Submit_Date,PROCESS_DATE) VALUES ('",df$Inc_Number,"','",df$Group,"','",df$Resolved_TIME,"','",df$Submit_Date,"',DEFAULT)",sep="")

lapply(req, function(x) dbExecute(conn, x))

PROCESS_DATE是sys.date

示例数据:

INCNO1  Group1  4/10/2017 13:48 4/10/2017 13:48
INCNO2  Group1  4/10/2017 13:43 4/10/2017 13:30
INCNO3  Group2  4/10/2017 14:26 4/10/2017 14:26
INCNO4  Group2  4/10/2017 13:31 4/10/2017 13:31
INCNO5  Group2  4/10/2017 13:33 4/10/2017 13:33
INCNO6  Group3  4/10/2017 13:11 4/10/2017 13:11

得到上述错误。

0 个答案:

没有答案