快速提问:我正在使用RODBC连接在批处理模式下并行运行多个R实例,并且随机的一个(或多个)实例失败。如果我回过头来逐个运行实例,那么所有实例都是成功的。日志中没有错误,我只想推断出问题的确切位置。我的主要假设是我遇到内存堆顶部并且实例失败,或者(更可能)RODCB连接发生了某种时间。有什么建议吗?
谢谢,
吉姆
答案 0 :(得分:2)
目前尚不清楚为什么没有错误显示,也许您可以尝试options(error = recover)
使用多个数据库连接时,我曾经遇到以下错误:
Error in mysqlExecStatement(conn, statement, ...) :
RS-DBI driver: (connection with pending rows, close resultSet before continuing)
在发出新查询之前,通过发出以下行来关闭所有打开的连接来避免此错误:
lapply(dbListConnections(MySQL()), dbDisconnect)
我从R help list获取此代码。
更新:我的一位合作者创建了一个suite of functions来促进数据库互动,包括db.con
,db.open
,db.close
和db.query
用过:
## load functions
source("https://raw.github.com/PecanProject/pecan/master/db/R/utils.R")
## example
params <- list(dbname = "mydb", username = "myname", password = "!#@?$")
con <- db.open(params)
mydata <- db.query("select * from mytable;")
db.close(con)