R语言学习之<连接数据库>

原创 2015年11月21日 16:16:30

R语言连接数据库可以利用数据库的存贮能力和R的计算能力,起到取长补短的效果。接下来探讨如何用R连接Oracle数据库。


一、Oracle Database Instant Client

   Oracle Database Instant Client 是用来连接远程服务器的,这样自己的电脑就不需要安装oracle数据库,因为oracle数据库太大,要求配置比较高。Oracle Database Instant Client 目前是分32位和64位的,下载安装需要清除自己的电脑是32位还是64位,下载对应的版本。


1) 从oracle官方网站下载instant client文件,一般来说,有basic、odbc,就足够用的了(其中basic是必须的,其他的自己根据需求下载):

     instantclient-basic-windows.x64-12.1.0.2.0.zip

     instantclient-odbc-windows.x64-12.1.0.2.0.zip

     instantclient-sdk-windows.x64-12.1.0.2.0.zip

2) 将以上压缩包解压到同一个文件夹中,如D:\Oracle\instantclient_12_1,设置环境变量

    1. ORACLE_HOME = D:\Oracle\instantclient_12_1

    2. TNS_ADMIN = D:\Oracle\instantclient_12_1

    3. NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK (可以不用设置)

    4. 修改Path变量,添加 %ORACLE_HOME%

3) 在D:\Oracle\instantclient_12_1中新建一个tnsnames.ora文件,环境变量TNS_ADMIN就是指向tnsnames.ora所在目录的。

ORACLE=
 (DESCRIPTION =
  (ADDRESS_LIST =
   (ADDRESS = (PROTOCOL = TCP)(HOST = 10.6.0.46)(PORT = 1521))
 )
 (CONNECT_DATA =
  (SERVICE_NAME = orcl)
 )
)

其中红线加粗的三个地方需要根据自己的实际情况进行更改

ORACLE —— 远程数据库的连接字符串

10.6.0.46 —— 远程数据库所在机器IP

orcl ——远程数据库名称

4)双击安装目录下的odbc_install.exe

5)打开控制面板,进入管理工具

   

    由于下载的是64位的,双击ODBC数据源(64位),点击添加

   

    选择Oracle in instantclient_12_1,点击完成,接着会需要填写一些项:

       ①Data Source Name 一项填入你要使用的名字,自己随便命名,例如:DSN;

       ②Description一项随意填写(可以不填),例如mydata

       ③TNS Service Name :远程数据库的连接字符串,会自动在tnsnames.ora中找到(设置了环境变量才找得到),点击右侧的向下的箭头就可以找到之前在tnsnames.ora设置的远程数据库的连接字符串ORACLE

       ④ User ID : Oracle用户名

   


至此,Oracle Database Instant Client 安装并配置完成。


二、R中连接Oracle数据库

1)安装RODBC,install.package("RODBC")

2 ) 加载RODBC包,library(RODBC)

3 ) 连接数据库,channel <- odbcConnect("DSN", uid="abc", pwd="abc")

注: 连接数据库可能出现以下问题

Warning messages:
1: In odbcDriverConnect("DSN=DSN;UID=jincz;PWD=jinchongzi", readOnlyOptimize = TRUE) :
  [RODBC] ERROR: state IM014, code 0, message [Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配
2: In odbcDriverConnect("DSN=DSN;UID=jincz;PWD=jinchongzi", readOnlyOptimize = TRUE) :
  ODBC connection failed


可能原因:

①由于R的位数和Oracle Database Instant Client的位数(或者说是ODBC数据源位数)不同导致的,Oracle Database Instant Client的位数为64位,则R也要设置为64位。

设置方式:点击Tools -> Global options  -> 修改R version

②由于ODBC数据源未设置导致。







R语言 使用RODBC连接oracle数据库

使用R语言有多种包可以连接oracle数据库,我今天在这里讲一下使用使用RODBC连接oracle数据库。 1. 如果你的本地是windows系统的话,你需要安装oracle客户端。 2. 然后需要在...
  • yepeng2007fei
  • yepeng2007fei
  • 2017年07月13日 09:36
  • 681

R语言 数据库SQL-R连接与SQL语句执行(RODBC、sqldf包)

R语言 数据库SQL-R连接与SQL语句执行(RODBC、sqldf包)
  • lijinxiu123
  • lijinxiu123
  • 2016年12月30日 10:03
  • 1191

R语言︱ 数据库SQL-R连接与SQL语句执行(RODBC、sqldf包)

数据库是极其重要的R语言数据导入源数据之地,读入包有sqldf、RODBC等。 一、数据库读入——RODBC包 RODBC包中能够基本应付数据库读入。一般数据数据库读入过程中主要有: 连...
  • sinat_26917383
  • sinat_26917383
  • 2016年06月07日 10:22
  • 12378

linux下R语言通过odbc访问oracle

一、        下载 1、             unixODBC http://www.unixodbc.org/ 下载文件:unixODBC-2.3.0.tar.gz 2、     ...
  • paomojing
  • paomojing
  • 2014年09月22日 15:20
  • 1660

R语言基于RJDBC实现oracle/mysql数据库操作

R语言基于RJDBC实现数据库操作过程与java jdbc相似,具体步如下: 1. 加载数据库驱动; 2. 创建数据库连接 3、数据库操作 4、关闭数据库连接 示例代码和jar可在该地址下载:htt...
  • zhaogr337422
  • zhaogr337422
  • 2017年05月25日 16:12
  • 344

R语言使用RMySQL连接及读写Mysql数据库

R语言使用RMySQL联接及读写Mysql数据库 www.MyException.Cn  网友分享于:2015-08-26  浏览:0次 R语言使用RMySQL连接及读写Mysql数据库 简单说...
  • hongweigg
  • hongweigg
  • 2015年11月11日 14:42
  • 9796

R语言连接Mysql数据库的步骤及简单使用(学习笔记)

实验环境:win8.1-64操作系统,MySQL5.61、下载(mysql-connector-odbc-5.3.4-winx64.msi) 下载地址:http://dev.mysql.c...
  • songzhilian22
  • songzhilian22
  • 2015年11月05日 10:49
  • 2693

R通过RJDBC连接外部数据库

1、  连接hive library(RJDBC) drv conn 2、  连接mysql library(RJDBC) drv
  • paomojing
  • paomojing
  • 2014年11月18日 13:29
  • 3942

R语言︱ 数据库SQL-R连接与SQL语句执行(RODBC、sqldf包)

版权声明:本文为博主原创文章,转载请注明原作者Matt与博客链接,谢谢合作~~~ 目录(?)[-] 一数据库读入RODBC包二sqldf包 SQL基本特点数据筛选与排...
  • kilolo_w
  • kilolo_w
  • 2016年11月22日 15:03
  • 1144

R语言连接Oracle的一种方式:使用ROacle

由于网上对于ROracle的安装不是最新的,所以贴出最新的额安装过程分享
  • chenchudongsg
  • chenchudongsg
  • 2016年11月16日 17:27
  • 1044
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:R语言学习之<连接数据库>
举报原因:
原因补充:

(最多只允许输入30个字)