微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决R - 访问数据库时处理错误

我正在尝试使用 RJDBC 使用 for 循环自动数据库下载数据。我使用的数据库每 10 分钟后自动关闭连接,所以我想做的是以某种方式捕获错误,重新建立连接,然后继续循环。为了做到这一点,我需要以某种方式捕获错误,问题是,它不是 r 错误,因此没有任何命令 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... ")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。