我建议您使用其他类型代替。
dbGetQuery
是基于查找和迭代数据库而不是操作记录的。
类似的问题之前已经被问过,可以在
这里找到;
我没有找到一个好的R例子,但如果有帮助的话,可以在
这里找到一个好的Java例子。
编辑:
我找到了我所说的类型!虽然花了一些时间 - sqlQuery
允许您运行几乎任何查询,也就是说,更改数据库记录。下面是我从这个来源修改的示例:
res <- sqlQuery(con1,"DELETE TABLE TESTDATA", errors=FALSE)
if (res == -1){
cat ("An error has occurred.\n")
msg <- odbcGetErrMsg(con1)
print (msg)
} else {
cat ("Table was deleted successfully.\n")
}
编辑2:
我把RODBC和RJDBC搞混了,但不用担心,因为我也找到了RJDBC的替代方法!它被称为dbSendUpdate
。例如:
# Assuming you have the connection saved as conn; these example shows how to use dbSendUpdate to create tables and insert values.
# You could use it with every non-selective query, that is, which manipulates the record (update,delete,insert,drop etc.)
# create table, with dbSendUpdate:
dbSendUpdate(conn, "CREATE TABLE foo(a INT,b VARCHAR(100))")
# insert value, bind parameters to placeholders in statement:
dbSendUpdate(conn, "INSERT INTO foo VALUES(?,?)", 42, "bar")
# feel free to modify the query itself, these are just example values.