SQL 查询在 Access 中有效,但在 R 中使用 RJDBC 包无效

问题描述 投票:0回答:0

我整天都在试图解决这个问题.. 我有一个 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 进行了同样的尝试,但我总是得到同样的错误。

r ms-access jdbc
© www.soinside.com 2019 - 2024. All rights reserved.