成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

在R中連接Oracle數(shù)據(jù)庫

Tony / 3056人閱讀

摘要:而使用連接數(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)文章

  • Oracle APEX 系列文章4:阿里云上打造屬于你自己的APEX完整開發(fā)環(huán)境 (安裝XE, O

    摘要:更多關(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...

    pepperwang 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<