2

我对 R 很陌生,可能是我再次问这个问题,但我发布这个是因为我没有找到合适的答案。

我正在尝试使用 RODBC 连接到位于 R 远程位置的 Oracle DB。我浏览了很多 RODBC 配置文档,但没有明确说明与远程 Oracle DB 的连接以及根本原因是什么。

我还考虑过将ROracle用作 DBI,但发现RODBC的表现要好得多,原因有很多。

所以,这是我的代码:

> # Load RODBC package
> library(RODBC)

> # Create a connection to the database
> dbconnection <- odbcDriverConnect("Driver={Oracle ODBC Driver}; Server=my_hostname; Database=my_db_name; Uid=my_uid; Pwd=my_pwd")

> # Check that connection is working
> odbcGetInfo(dbconnection)

> close(dbconnection)

我使用的 TNS Config [值因明显原因而改变]

my_db_name =
 (DESCRIPTION =
  (ADDRESS = (PROTOCOL = TCP)(HOST = my_hostname)(PORT = my_port))
  (CONNECT_DATA =
   (SERVER = DEDICATED)
   (SERVICE_NAME = my_service_name)
  )
 )

注意:这里的另一件事是我没有本地 Oracle DB 设置。我使用 SQL Developer 通过给定的 TNS 配置连接到远程 Oracle DB。

我收到以下错误:

Warning messages:
1: In odbcDriverConnect("Driver={Oracle ODBC Driver}; Server=my_hostname; Database=my_db_name; Uid=my_uid; Pwd=my_pwd") :
  [RODBC] ERROR: state 01000, code 0, message [unixODBC][Driver Manager]Can't open lib 'Oracle ODBC Driver' : file not found
2: In odbcDriverConnect("Driver={Oracle ODBC Driver}; Server=my_hostname; Database=my_db_name; Uid=my_uid; Pwd=my_pwd") :
  ODBC connection failed

安装 R 后,我只使用install.packages("RODBC")命令安装了 RODBC。另外,我在 Mac OS 上运行它。

我知道我在这里遗漏了一些东西。具体来说,Driver={Oracle ODBC Driver}可能需要修改为实际的驱动程序名称。但我不知道它应该是什么,谷歌搜索并没有太大帮助。

还有什么我需要安装或配置的吗?

4

0 回答 0