win10下安装ROracle以及远程连接数据库

最近做毕设要用R连接Oracle,查阅了一些资料,主要用到两种方式连接oracle数据库,并且我已经测试成功。下面分享下我的安装过程和遇到的问题。

我主要是参阅了(http://wenku.baidu.com/link?url=aexRXQ822IapdnQ2j3zaqfQj611d_XXihumaYx0qCOiEsGUkl0t7p5zrXSHuuQIntyKjuHH-c3IGNfkY8bav15oxph2QNcRmgJKAqYrWYGC)这篇文档,介绍的很详细。

相对于其它的连接方式,用ROracle连接的方式性能和稳定性都较好。(https://blogs.oracle.com/R/entry/r_to_oracle_database_connectivity)这篇博客给这些方法的性能做了详细比较,感兴趣的可以了解下。

方式一:用ROralce包连接

1.环境

win10 64位 

oracle11g 

R x64 3.3.1

oracle11g的安装过程可参考(http://www.server110.com/oracle/201310/2546.html)

2.测试数据库连接

参考文档(http://wenku.baidu.com/link?url=wVAIFQ9KPoh8w7-F8qHhtnnkjrU9_T7ld1ibA81-eaH8Nua-m296gTYY7twOVGBTSLpZ3eMCTG5LEJZjgn5NxJxr0KGCSp0ZXjmBx7rSEhy)

如果测试不成功:

出现问题ora-12154无法解析指定的连接标识符,

找到D:\app\hvf\product\11.2.0\dbhome_1\NETWORK\ADMIN目录下tnsnames.ora配置文件,添加红框中的配置信息。


如果出现问题ORA-12638: 身份证明检索失败

开始 -> 程序 -> Oracle -> Net Manager→本地→概要文件→Oracle高级安全性→验证→去掉所选方法中的 "NTS" 就可以了.

3.安装Rtools

下载地址:https://cloud.r-project.org/




根据R的版本选择。

4.配置环境变量

右键-》我的电脑-》高级-》环境变量-》系统变量下面的 Path 双击-》,就是 Rtool 的 bin 目录和 gcc 的 bin 目录 即: 

C:\Rtools\bin;

C:\Rtools\mingw_64\bin

R软件的安装路径

E:\R-3.3.1\bin\x64

5.下载oracle client


下载红框标注的两个包,并且一起解压到D:\instantclient\x64目录下,该路径不一定是D盘下,根据你自己指定盘符创建目录。

解压成功后,进入D:\instantclient\x64\instantclient_12_1,结果如下


6.安装 DBI 包 

7.下载安装 ROracle 包 

下载地址:

https://cran.r-project.org/web/packages/ROracle/index.html


将下载的包复制到E:\R-3.3.1\bin\x64下

7.配置系统变量

上面推荐的文档这处有错,改成下面这种配置

OCI_INC =D:\instantclient\x64\instantclient_12_1\sdk\include 

OCI_LIB64=D:\instantclient\x64\instantclient_12_1

8.安装

点击开始》运行》进入 cmd 命令窗口 》cd 到 E:\R-3.3.1\bin\x64这个目录下,即 ROracle安装包所在的目录

运行 R CMD INSTALL --build ROracle_1.3-1.tar.gz

显示DONE (ROracle),即安装成功

方法二:通过 RODBC 连接 

见(http://wenku.baidu.com/link?url=aexRXQ822IapdnQ2j3zaqfQj611d_XXihumaYx0qCOiEsGUkl0t7p5zrXSHuuQIntyKjuHH-c3IGNfkY8bav15oxph2QNcRmgJKAqYrWYGC),因为没什么大问题,所以不再赘述


R连接数据库代码

library(DBI)
library(ROracle)
drv = dbDriver("Oracle")

#用RODBC
library(RODBC)
channel <- odbcConnect("数据源名称",uid="用户名",pwd="密码") 

#用ROracle
host <- "服务器ip地址"
port <- 1521
sid <- "服务名"
connect.string <- paste(
"(DESCRIPTION=",
"(ADDRESS=(PROTOCOL=tcp)(HOST=", host, ")(PORT=", port, "))",
"(CONNECT_DATA=(SID=", sid, ")))", sep = "")
con <- dbConnect(drv,username = "用户名", password = "密码",dbname = connect.string)

#查询
rs = dbSendQuery(con,"select * from 表") 
data = fetch(rs)
若出现 ORA-12638: 身份证明检索失败,按以上提到的处理方法,然后重启R


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值