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