99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀R語言—連接Oracle數(shù)據(jù)庫
R語言—連接Oracle數(shù)據(jù)庫
2017-06-10
收藏

R語言—連接Oracle數(shù)據(jù)庫

本教程會(huì)講解兩種方法,第一種方法較為簡單,且中文不容易出現(xiàn)亂碼。第二種方法,較為復(fù)雜,和java的jdbc連接數(shù)據(jù)庫操作類似。

操作環(huán)境:
            系統(tǒng):windows10 64位
            數(shù)據(jù)庫:Oracle11g  用戶名:testuser  
            案例用表:emp
            R語言版本:3.4.0  64位
            RStudio版本:1.0.143

方法一(推薦):

1.設(shè)置"ODBC數(shù)據(jù)源(64位)"

圖1:控制面板>管理工具>ODBC數(shù)據(jù)源(64位)

圖2:有些設(shè)置,自己要記得,紅字中的代碼會(huì)用到。
2.代碼部分
> library(RODBC)  ##加載RODBC包,沒有成功的請(qǐng)先下載安裝install.packages("RODBC")
> con<-odbcConnect("oracle",uid="testuser",pwd="testuser",believeNRows=FALSE) ##建立Oracle連接
> emp1<-sqlQuery(con,"select * from EMP") ##sqlQuery可帶查詢語句
> sqlFetch(con,'EMP')  ##sqlFetch可根據(jù)表名,獲取Oracle中的表(注意,這里表名在單引號(hào)中,雙引號(hào)會(huì)報(bào)錯(cuò))
> odbcClose(con)  ##關(guān)閉連接
    EMPNO  ENAME       JOB  MGR   HIREDATE  SAL COMM DEPTNO
1    7369  SMITH     CLERK 7902 1980-12-17  800   NA     20
2    7499  ALLEN  SALESMAN 7698 1981-02-20 1600  300     30
3    7521   WARD  SALESMAN 7698 1981-02-22 1250  500     30
····
方法一結(jié)束?。。?br /> 方法二:
1.將驅(qū)動(dòng)"ojdbc6_g.jar"放到R的工作空間中,不知道R工作空間的可以通過在RStudio中輸入"getwd()"查看路徑。

圖3:"ojdbc6_g.jar"文件在Oracle11g的目錄中能找到,無需下載
2.代碼部分
> library(RJDBC)  ##加載"RJDBC"包,如果失敗了。請(qǐng)安裝該包install.packages("RJDBC")
> drv<-JDBC("oracle.jdbc.driver.OracleDriver","ojdbc6_g.jar", identifier.quote="\"")  ##java中JDBC的套路
> conn<-dbConnect(drv,"jdbc:oracle:thin:@127.0.0.1:1521:orcl","testuser","testuser") ##建立一個(gè)連接
> EMP<-dbReadTable(conn,'EMP') ##根據(jù)連接和表名獲取Oracle中的表
> table1<-dbGetQuery(conn,"select * from EMP")  ##根據(jù)sql記錄獲取Oracle中表的數(shù)據(jù)
> head(EMP,3)  ##查看前三行
  EMPNO ENAME      JOB  MGR            HIREDATE  SAL COMM DEPTNO
1  7369 SMITH    CLERK 7902 1980-12-17 00:00:00  800   NA     20
2  7499 ALLEN SALESMAN 7698 1981-02-20 00:00:00 1600  300     30
3  7521  WARD SALESMAN 7698 1981-02-22 00:00:00 1250  500     30
> head(table1,3) ##查看前三行
  EMPNO ENAME      JOB  MGR            HIREDATE  SAL COMM DEPTNO
1  7369 SMITH    CLERK 7902 1980-12-17 00:00:00  800   NA     20
2  7499 ALLEN SALESMAN 7698 1981-02-20 00:00:00 1600  300     30
3  7521  WARD SALESMAN 7698 1981-02-22 00:00:00 1250  500     30
> names(table1)=iconv(names(table1),"UTF-8","GBK")  ##若是表中列名為中文,讀取時(shí)出現(xiàn)亂碼,可用這句來搞定亂碼情況
方法二結(jié)束?。?!

數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼

若不方便掃碼,搜微信號(hào):CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測(cè)極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請(qǐng)參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }