首页 > 解决方案 > 使用 ODBC 的 R 到 Oracle 连接

问题描述

我正在尝试建立从 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 

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

谢谢。

标签: roracleodbc

解决方案


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

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

一些关键点:

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

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

最后,对于连接字符串,这个答案很有趣:如何使用 system.data.oracleclient 为 oracle 创建一个连接字符串,其中包括主机名、实例名称、用户 ID、密码?


推荐阅读