在R中连接Oracle数据库
原文地址: http://blog.52sox.com/use-r-c... 实际上学习R语言,主要是为了研究时间序列,相比Python的pandas,R中的包要强悍很多。
RODBC惹的祸而最开始他选择的是RODBC,主要是因为在Windows下进行操作。结果卡在了如下的异常中: 1: In odbcDriverConnect("DSN=group;UID=fwy;PWD=fwy") : [RODBC] ERROR: state IM014,code 0,message [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 2: In odbcDriverConnect("DSN=group;UID=fwy;PWD=fwy") : ODBC connection failed 可以很明显的看到,是没有安装对应的ODBC驱动。于是从oracle的官方页面下载了如下2个文件:
这里我在Windows7上使用的版本是
ODBC设置成功后就可以通过如下的方式操作Oracle数据库了: library("RODBC") db <- odbcConnect(dsn="mesprd",uid="mesprd",pwd="wip24ux") data <- sqlQuery(db,"SELECT SYSDATE from DUAL") 需要注意的是,在这里第1个参数dsn是我们设置ODBC时对应的名称,如果使用IP地址的方式是无法连接成功的,这是需要注意的。 还是ROracle比较靠谱既然RODBC行不通,那么我们就来实践下RJDBC吧,结果把我搞晕了,实在太复杂了,超出了我头脑的容纳范围。没办法,只能再换种方式了,于是只能试下ROracle了。 install.packages('ROracle') 如果直接安装会出现类似如下的页面:
结果安装的过程中提醒我没有找到OCI的库。那么需要安装如下3个包:
在这里,我使用的版本还是上面的 setwd('下载包的目录') install.packages('ROracle_1.2-1.zip',repos=NULL) #install.packages('ROracle',type='source') 当然你也可以手动执行如下的操作: R CMD INSTALL ROracle-1.2-1.zip 这样就完成了包的安装,最后通过类似如下的方式进行操作 library(ROracle) drv <- dbDriver("Oracle") con <- dbConnect(drv,"mesprd","wip24ux") 最后关于这3个库的性能问题,可以参考。其执行速度关系为ROracle>RODBC>RJDBC。 参考文章: https://docs.oracle.com/en/da... (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |