R - 访问数据库时处理错误

R - handle error when accessing a database

我正在尝试使用 RJDBC 使用 for 循环自动从数据库下载数据。我使用的数据库每 10 分钟后自动关闭连接,所以我想做的是以某种方式捕获错误,重新建立连接,然后继续循环。为了做到这一点,我需要以某种方式捕获错误,问题是,它不是 r 错误,所以 none 命令 trycatch 和类似的作品。我刚刚在控制台上收到一条文本,告诉我:

Error in .jcheck() : No running JVM detected. Maybe .jinit() would help.

我如何处理这个问题:

if (output == ERROR) {remake connection and run dbQuery} else {run dbQuery}

感谢您的帮助

您可以使用 poolto abstract away the logic of connection management
这完全符合您对 DBI.
连接管理的期望 它应该与 RJDBC which is an implentation of DBI 一起工作,但我没有用这个驱动程序测试它。

libray(pool)
library(RJDBC)

conn <- dbPool(
  drv = RJDBC::JDBC(...),
  dbname = "mydb",
  host = "hostadress",
  username = "test",
  password = "test"
)
on.exit(poolClose(conn))

dbGetQuery(conn, "select... ")