我对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配置[由于显而易见的原因改变了值] :
my_db_name =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = my_hostname)(PORT = my_port))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = my_service_name)
)
)
注意:另一件事是我没有本地Oracle数据库设置。我使用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}
可能需要修改为实际的驱动程序名称。但我不知道它应该是什么,谷歌搜索没有多大帮助。
我还需要安装或配置其他任何内容吗?