使用DBI::dbDriver("Oracle")连接R和Oracle时出现错误。

7

我尝试按照《R连接Oracle数据库:使用ROracle进行性能和可扩展性的优化》的指示,通过DBI和ROracle包简单地连接Oracle数据库。

当我通过Windows7 > ODBC数据源管理器(32位)测试连接时,连接成功。它使用已安装的Oracle客户端OraClient11g_home1,该客户端位于C:\oracle\Client112_32中。ORACLE_HOME环境变量设置为C:\oracle\Client112_32。

我猜想这可能与32位/64位问题有关?但即使经过了一些研究,我也没有找到任何解决方案。我还尝试在32位的R中运行,但也失败了。顺便说一下,通过SQL Developer的连接也是成功的。

drv <- DBI::dbDriver("Oracle")
#>Error: Couldn't find driver Oracle. Looked in:
#>* global namespace
#>* in package called Oracle
#>* in package called ROracle
2个回答

4

我也遇到过这个问题。我发现先加载 ROracle 库可以解决这个问题。

library("ROracle")
drv <- DBI::dbDriver("Oracle")

我不知道为什么。


2

在user11227405的答案基础上进行补充:其实只需要加载ROracle而不需要将其附加到搜索路径上;library()函数可以同时完成这两个操作:

loadNamespace("ROracle")
drv <- DBI::dbDriver("Oracle")

这可能更适合于包等情况,其中应避免更改搜索路径


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接