我整天都在试图解决这个问题.. 我有一个 Access 数据库,我想使用 JDBC 连接从 R 更新一些数据。 如果我从 Access 中的 SQL 查询编辑器执行 UPDATE 查询,它会完美运行,但无法从 R 运行,我不知道为什么。这是我的代码:
library(devtools)
library(DBI)
library(dplyr)
library(rJava)
library(RJDBC)
setwd("mypath")
access_driver_file_name <- "Access_JDBC42.jar"
access_driver_class <- "com.hxtt.sql.access.AccessDriver"
access_data_file <- "my_database.accdb" #poner aqui el nombre de la base 1
access_jdbc_url <- paste("jdbc:access:/", getwd(), "\\", access_data_file, sep="")
access_jdbc_driver <- JDBC(driverClass=access_driver_class, classPath=paste(getwd(), "\\", access_driver_file_name, sep=""))
con <- dbConnect(access_jdbc_driver, access_jdbc_url)
dbListTables(con)#this work perfectly
dbSendUpdate(con, 'UPDATE TableName SET TableName.Field = "Casa"
WHERE (([TableName].[Field]="Oficina"));')
If I copy UPDATE TableName SET TableName.Field = "Casa" WHERE (([TableName].[Field]="Oficina")); and paste it in Access the query works, but R returns:
Error in .local(conn, statement, ...) :
execute JDBC update query failed in dbSendUpdate
JDBC ERROR: Syntax error: Stopped parse at .(id21)
Statement: UPDATE TableName SET TableName.Field = "Casa"
WHERE (([TableName].[Field]="Oficina"));
我对 dbSendQuery 和 dbGetQuery 进行了同样的尝试,但我总是得到同样的错误。 有谁能够帮助我? 提前谢谢你!
我对 dbSendQuery 和 dbGetQuery 进行了同样的尝试,但我总是得到同样的错误。