摘要:而使用連接數(shù)據(jù)庫的需求實(shí)際是個(gè)同事打算使用語言對(duì)數(shù)據(jù)庫直接進(jìn)行操作而不需要每次都導(dǎo)出數(shù)據(jù)再進(jìn)行操作。而在中要實(shí)現(xiàn)與數(shù)據(jù)庫的操作主要有個(gè)包可以使用惹的禍而最開始他選擇的是主要是因?yàn)樵谙逻M(jìn)行操作。
原文地址:
http://blog.52sox.com/use-r-c...
實(shí)際上學(xué)習(xí)R語言,主要是為了研究時(shí)間序列,相比Python的pandas,R中的包要強(qiáng)悍很多。
而使用R連接Oracle數(shù)據(jù)庫的需求,實(shí)際是1個(gè)同事打算使用R語言對(duì)數(shù)據(jù)庫直接進(jìn)行操作,而不需要每次都導(dǎo)出數(shù)據(jù)再進(jìn)行操作。而實(shí)際上我們公司是使用Python進(jìn)行數(shù)據(jù)分析的。
而在R中,要實(shí)現(xiàn)與Oracle數(shù)據(jù)庫的操作,主要有3個(gè)包可以使用:
RODBC
RJDBC
ROracle
RODBC惹的禍而最開始他選擇的是RODBC,主要是因?yàn)樵赪indows下進(jìn)行操作。結(jié)果卡在了如下的異常中:
1: In odbcDriverConnect("DSN=group;UID=fwy;PWD=fwy") : [RODBC] ERROR: state IM014, code 0, message [Microsoft][ODBC 驅(qū)動(dòng)程序管理器] 未發(fā)現(xiàn)數(shù)據(jù)源名稱并且未指定默認(rèn)驅(qū)動(dòng)程序 2: In odbcDriverConnect("DSN=group;UID=fwy;PWD=fwy") : ODBC connection failed
可以很明顯的看到,是沒有安裝對(duì)應(yīng)的ODBC驅(qū)動(dòng)。于是從oracle的官方頁面下載了如下2個(gè)文件:
instantclient-basic-windows.x64
instantclient-odbc-windows.x64
這里我在Windows7上使用的版本是11.2.0.3。將上述2個(gè)文件解壓后合并在1個(gè)文件夾后,通過管理員身份運(yùn)行文件夾下的odbc_install.exe文件即可安裝。
之后通過控制面板->管理工具->數(shù)據(jù)源(ODBC)中的相關(guān)設(shè)置即可成功連接。結(jié)果在他的Windows10系統(tǒng)中上述操作無法設(shè)置成功。
其配置頁面類似如下:
ODBC設(shè)置成功后就可以通過如下的方式操作Oracle數(shù)據(jù)庫了:
library("RODBC") db <- odbcConnect(dsn="mesprd", uid="mesprd", pwd="wip24ux") data <- sqlQuery(db, "SELECT SYSDATE from DUAL")
需要注意的是,在這里第1個(gè)參數(shù)dsn是我們?cè)O(shè)置ODBC時(shí)對(duì)應(yīng)的名稱,如果使用IP地址的方式是無法連接成功的,這是需要注意的。
還是ROracle比較靠譜既然RODBC行不通,那么我們就來實(shí)踐下RJDBC吧,結(jié)果把我搞暈了,實(shí)在太復(fù)雜了,超出了我頭腦的容納范圍。沒辦法,只能再換種方式了,于是只能試下ROracle了。
我進(jìn)行了如下的操作:
install.packages("ROracle")
如果直接安裝會(huì)出現(xiàn)類似如下的頁面:
結(jié)果安裝的過程中提醒我沒有找到OCI的庫。那么需要安裝如下3個(gè)包:
instantclient-basic-windows.x64
instantclient-sqlplus-windows.x64
instantclient-sdk-windows.x64
在這里,我使用的版本還是上面的11.2.0.3。安裝完成后,還需要設(shè)置OCI_LIB64環(huán)境變量,以便可以找到對(duì)應(yīng)的文件。
需要注意的是,ROracle的安裝在Linux上相對(duì)更為簡(jiǎn)單,在Windows上我們需要手動(dòng)進(jìn)行源碼的安裝。很不幸運(yùn)的是,其版本1.3.1在Windows7系統(tǒng)上式無法編譯通過的,最后選擇了版本1.2則很順利的通過了。其下載地址可以點(diǎn)擊。
下載完成后,我們?cè)赗的環(huán)境下運(yùn)行:
setwd("下載包的目錄") install.packages("ROracle_1.2-1.zip",repos=NULL) #install.packages("ROracle",type="source")
當(dāng)然你也可以手動(dòng)執(zhí)行如下的操作:
R CMD INSTALL ROracle-1.2-1.zip
這樣就完成了包的安裝,最后通過類似如下的方式進(jìn)行操作
library(ROracle) drv <- dbDriver("Oracle") con <- dbConnect(drv, "mesprd", "wip24ux")
最后關(guān)于這3個(gè)庫的性能問題,可以參考。其執(zhí)行速度關(guān)系為ROracle>RODBC>RJDBC。
參考文章:
https://docs.oracle.com/en/da...
https://cran.r-project.org/we...
https://stackoverflow.com/que...
https://stackoverflow.com/que...
https://stackoverflow.com/que...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/17662.html
摘要:更多關(guān)于阿里云彈性公網(wǎng)的介紹請(qǐng)移步這里。你下載的版本可能比鋼哥的高,不過安裝步驟是一樣的。總結(jié)至此,數(shù)據(jù)庫的完整開發(fā)環(huán)境就搭建好了。在接下來的文章里,鋼哥將帶你做進(jìn)一步的優(yōu)化,敬請(qǐng)期待。 本文是鋼哥的Oracle APEX系列文章中的其中一篇,完整 Oracle APEX 系列文章如下: Oracle APEX 系列文章1:Oracle APEX, 讓你秒變?nèi)珬i_發(fā)的黑科技 Orac...
閱讀 3063·2021-11-18 10:02
閱讀 3332·2021-11-02 14:48
閱讀 3394·2019-08-30 13:52
閱讀 558·2019-08-29 17:10
閱讀 2086·2019-08-29 12:53
閱讀 1408·2019-08-29 12:53
閱讀 1030·2019-08-29 12:25
閱讀 2166·2019-08-29 12:17