问题描述
我正在尝试从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?