Windows下一个ROracle安装与使用

时间:2022-05-03 18:16:43

ROracle一个简短的引论:

ROracle这是R连接到接入Oracle数据库DBI(Oracledatabase interface)介面。这是基于OCI一个DBI兼容Oracle司机.

具体见说明书:http://cran.r-project.org/web/packages/ROracle/ROracle.pdf

在Linux下安装ROracle比較简单。仅仅须要用install.packages("ROracle")就可以,在windows下要通过源代码安装。

安装源文件下载地址:

http://cran.rstudio.com/src/contrib/ROracle_1.1-11.tar.gz

Win7中R安装ROracle方法:

环境变量设置:

setOCI_LIB64=E:\app\licz\product\11.2.0\dbhome_1\BIN

setOCI_INC=E:\app\licz\product\11.2.0\dbhome_1\OCI\include

set PATH=C:\ProgramFiles\R\R-3.1.1\bin\x64

注意:

假设安装的的R 64bit版本号,那么oracle client也要是64位版本号

安装步骤:

打开R

C:\Users\licz>R

>install.packages("ROracle",type = "source")

trying URL'http://cran.rstudio.com/src/contrib/ROracle_1.1-11.tar.gz'

Content type'application/x-gzip' length 226769 bytes (221 Kb)

opened URL

downloaded 221 Kb

* installing *source* package'ROracle' ...

** 成功将'ROracle'程序包解包并MD5和检查

cygwin warning:

MS-DOS style path detected:E:\app\licz\product\11.2.0\dbhome_2\BIN

Preferred POSIX equivalent is:/cygdrive/e/app/licz/product/11.2.0/dbhome_2/BIN

CYGWIN environment variable option"nodosfilewarning" turns off this warning.

Consult the user's guide for more detailsabout POSIX paths:

http://cygwin.com/cygwin-ug-net/using.html#using-pathnames

Oracle Client Shared Library64-bit - 11.2.0.3.0 Operating in ORACLE_HOME environment.

found Oracle ClientE:\app\licz\product\11.2.0\dbhome_2\BIN

found Oracle Client includeE:\app\licz\product\11.2.0\dbhome_2\OCI\include

copying fromE:\app\licz\product\11.2.0\dbhome_2\OCI\include

** libs

警告: this package has a non-empty 'configure.win' file,

so building only the mainarchitecture

cygwin warning:

MS-DOS style path detected:C:/PROGRA~1/R/R-31~1.1/etc/x64/Makeconf

Preferred POSIX equivalent is:/cygdrive/c/PROGRA~1/R/R-31~1.1/etc/x64/Makeconf

CYGWIN environment variable option"nodosfilewarning" turns off this warning.

Consult the user's guide for more detailsabout POSIX paths:

http://cygwin.com/cygwin-ug-net/using.html#using-pathnames

gcc -m64-I"C:/PROGRA~1/R/R-31~1.1/include" -DNDEBUG -I./oci   -I"d:/RCompile/CRANpkg/extralibs64/local/include"     -O2 -Wall -std=gnu99 -mtune=core2 -c rodbi.c -o rodbi.o

gcc -m64-I"C:/PROGRA~1/R/R-31~1.1/include" -DNDEBUG -I./oci   -I"d:/RCompile/CRANpkg/extralibs64/local/include"     -O2 -Wall -std=gnu99 -mtune=core2 -c rooci.c -o rooci.o

In file included fromC:/PROGRA~1/R/R-31~1.1/include/R.h:50:0,

from rodbi.h:38,

from rooci.c:64:

C:/PROGRA~1/R/R-31~1.1/include/R_ext/RS.h:45:0:warning: "ERROR" redefined [enabled by default]

c:\rtools\gcc-4.6.3\bin\../lib/gcc/i686-w64-mingw32/4.6.3/../../../../i686-w64-mingw32/include/wingdi.h:70:0:note: this is the location of the previous definition

gcc -m64 -shared -s-static-libgcc -o ROracle.dll tmp.def rodbi.o rooci.o E:\app\licz\product\11.2.0\dbhome_2\BIN/oci.dll-Ld:/RCompile/CRANpkg/extralibs64/local/lib/x64-Ld:/RCompile/CRANpkg/extralibs64/local/lib -LC:/PROGRA~1/R/R-31~1.1/bin/x64-lR

installing to C:/ProgramFiles/R/R-3.1.1/library/ROracle/libs/x64

** R

** inst

** preparing package for lazyloading

Creating a generic function for'summary' from package 'base' in package 'ROracle'

** help

*** installing help indices

** building package indices

** testing if installed packagecan be loaded

* DONE (ROracle)

The downloaded source packagesare in

‘C:\Users\licz\AppData\Local\Temp\RtmpAjzrhP\downloaded_packages’

ROracle包使用:

>library(ROracle)

加载须要的程辑包:DBI

# 连接本地Oracle数据库

> con <- dbConnect(drv,username = "scott", password = "tiger")

> rs <- dbSendQuery(con,"select * from emp where deptno = 10")

> data <- fetch(rs)

> data

EMPNO ENAME       JOB  MGR  HIREDATE  SAL COMM DEPTNO

1  7782 CLARK   MANAGER 7839 1981-06-092450   NA     10

2  7839  KING PRESIDENT   NA 1981-11-175000   NA    10

3  7934 MILLER     CLERK 7782 1982-01-23 1300   NA    10

> dim(data)

[1] 3 8

# 连接远程Oracle数据库

> drv <-dbDriver("Oracle")

> connect.string <-"(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.5.195)(PORT =1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = cwdb)))"

> con <- dbConnect(drv,username = "scott", password = "tiger",

+ dbname = connect.string)

> rs <- dbSendQuery(con,"select * from emp where deptno = 10")

> data <- fetch(rs)

> data

EMPNO ENAME       JOB  MGR  HIREDATE  SAL COMM DEPTNO

1  7782 CLARK   MANAGER 7839 1981-06-092450   NA     10

2  7839  KING PRESIDENT   NA 1981-11-175000   NA     10

3  7934 MILLER     CLERK 7782 1982-01-23 1300   NA    10

> dim(data)

[1] 3 8

版权声明:本文博客原创文章。博客,未经同意,不得转载。