我对 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}
可能需要修改为实际的驱动程序名称。但我不知道它应该是什么,谷歌搜索并没有太大帮助。
还有什么我需要安装或配置的吗?