【问题标题】:R to Oracle Connection Using ODBC使用 ODBC 的 R 到 Oracle 连接
【发布时间】:2020-08-17 14:36:44
【问题描述】:

我正在尝试建立从 R 到 Oracle 的连接,但在这样做时遇到了问题。

这是我在 DBI 和 odbc 包中使用的连接脚本:

library(DBI)
library(odbc)

con <- DBI::dbConnect(odbc::odbc(),
                      Driver = "Oracle in OraClient11g_home1",
                      Server   = "orasade06.hc-sc.gc.ca",
                      SID = "sdv11040",
                      Schema    = "STG",
                      Username    = "username",
                      Password   = "pw",
                      Port   =  1521)

我能够通过 Oracle SQL Developer 成功连接以查看我的数据库和架构。

我已经在我的机器上安装了 Oracle ODBC 驱动程序(OraClient11g_home1 中的 Oracle),但是我无法从“R”成功连接。

这是我得到的错误:

Error: nanodbc/nanodbc.cpp:983: IM002: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified 

我们将不胜感激任何帮助和指导。

谢谢。

【问题讨论】:

  • Oracle 还是 SQL Server?这是两个不同的关系数据库。不要混合使用 ODBC 驱动程序。
  • 我建议使用 ROracle 软件包。
  • @Parfait 抱歉,我在问题中更新了连接脚本。我从另一个脚本中得到了错误的驱动程序。这是我现在遇到的错误:错误:nanodbc/nanodbc.cpp:983: IM002: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
  • @SmokeyShakers 我很想安装,但我无法安装基于 Java 的 R 包,因为它在我的组织中被阻止。错误:“rJava”的包或命名空间加载失败:“rJava”的 loadNamespace() 中的 .onLoad 失败,详细信息:调用:fun(libname, pkgname) 错误:无法从注册表中确定 JAVA_HOME
  • @r2evans 没有与 odbc::odbcListDrivers() 一起列出的 Oracle 驱动程序。我需要在我的机器上安装 Oracle 驱动程序吗?

标签: r oracle odbc


【解决方案1】:

我已经写了一个关于这个的教程,也许看看:

https://guillaumepressiat.github.io/blog/2019/11/oraclyr

一些关键点:

  • 如果您的 Oracle 客户端是 32 位的,则使用 R 32 位是一个(或那个)解决方案。否则 R 和 odbc 错误消息不是很清楚
  • 在 RStudio 中查看 Oracle 客户端是否出现在连接窗格中

在 linux 上更简单,但 odbc 的字符串和参数有点不同。

最后,对于连接字符串,这个答案很有趣:how to make a connection string for oracle that includes hostname, instance name, user id, password using system.data.oracleclient?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-06
    • 1970-01-01
    相关资源
    最近更新 更多