我正在编写一个在单个 JVM 中生成多个 R 会话的程序。我需要在这些会话之间共享数据,并且我现在正在将文件 (RData/txt) 写入磁盘。我做了一些阅读,发现内存数据库是正确的方法,并且将注意力集中在 H2 上。我下载并安装了 RH2 包,文档说它包含一个 H2 实例——我不需要单独安装一个。
所以我继续尝试创建我的数据库:
con <- dbConnect(H2(), "jdbc:h2:mem:test", "sa", " ")
并得到一个错误:
Error in .local(drv, ...) : could not find function ".verify.JDBC.result"
我阅读了这个StackOverflow 问题,并尝试了:
> con <- dbConnect(H2(), "jdbc:h2:mem:test")
Error in .local(drv, ...) : could not find function ".verify.JDBC.result"
> con <- dbConnect(H2(), "jdbc:h2:mem:test;DB_CLOSE_DELAY=-1")
Error in .local(drv, ...) : could not find function ".verify.JDBC.result"
> con <- dbConnect(H2(), "jdbc:h2:~/test", "sa", "")
Error in .local(drv, ...) : could not find function ".verify.JDBC.result"
我浏览了文档,但没有太大帮助。我检查了我的驱动程序,它给出了:
> H2()
An object of class "H2Driver"
Slot "identifier.quote":
[1] "\""
Slot "jdrv":
[1] "Java-Object{org.h2.Driver@25e01f19}"
如何继续从 R 中创建数据库?另外,是否可以在不同的会话之间共享这个数据库?
更新:我切换到 RJDBC 和 RH2 的旧实例,但结果相同。