使用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 

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

谢谢。

解决方法

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

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?