Decode360's Blog

          業(yè)精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
            302 隨筆 :: 26 文章 :: 82 評(píng)論 :: 0 Trackbacks
          Excel數(shù)據(jù)導(dǎo)入Oracle的方法
          ?
          ?
          ??? 最近同事遇到了每天手工導(dǎo)入Excel數(shù)據(jù)到Oracle的問題,他目前的操作是使用PL/SQL Developer中的復(fù)制粘貼方法,這樣每天都需要進(jìn)行手工的操作,很明顯長(zhǎng)期下來的工作量是比較大的,于是找了幾種可供使用的導(dǎo)入方法:
          ?
          ?
          一、直接使用SQL*Loader導(dǎo)入
          ?
          ??? SQL*Loader是Oracle自帶的數(shù)據(jù)加載工具,其數(shù)據(jù)導(dǎo)入比較專業(yè),有各種參數(shù)及選項(xiàng)可供選擇,經(jīng)常是作為數(shù)據(jù)倉(cāng)庫(kù)中大型數(shù)據(jù)的導(dǎo)入方法選擇。
          ?
          ??? 優(yōu)點(diǎn):
          ??? 1、可將導(dǎo)入命令寫入BAT文件直接批量處理
          ??? 2、導(dǎo)入處理比較專業(yè),提供各種參數(shù)選擇
          ??? 3、無需操作Oracle所在服務(wù)器
          ?
          ??? 缺點(diǎn):
          ????1、Excel文件需要另存為txt或csv格式(似乎沒有自動(dòng)完成的方法)
          ?
          ?
          ??? 總得來說這種方法是最值得采用的,可以自動(dòng)建立操作系統(tǒng)的批處理文件執(zhí)行SQLLDR命令,將數(shù)據(jù)導(dǎo)入原始接收表,并在數(shù)據(jù)庫(kù)中設(shè)置觸發(fā)器進(jìn)行精細(xì)操作。
          ??? 關(guān)于SQL*Loader的具體操作,參見“SQL*Loader使用介紹”“SQLLDR應(yīng)用舉例”
          ?
          ?
          ?
          二、使用外部表直接更新Excel數(shù)據(jù)
          ?
          ??? Oracle的外部表其實(shí)也可以滿足將外部數(shù)據(jù)讀入數(shù)據(jù)庫(kù)的功能,但是其可操作性相比SQL*Loader還是要小很多
          ?
          ??? 優(yōu)點(diǎn):
          ??? 1、無需執(zhí)行導(dǎo)入操作,更新外部文本文件后可直接查詢數(shù)據(jù)
          ??? 2、僅在查詢時(shí)操作一次數(shù)據(jù),對(duì)系統(tǒng)資源占用較小
          ?
          ??? 缺點(diǎn):
          ??? 1、需要建立directory ,一是要有權(quán)限,二是文件必須放到Oracle服務(wù)器上(似乎不能遠(yuǎn)程)
          ??? 2、需要上傳文件,而且無法進(jìn)行多表導(dǎo)入等復(fù)雜的操作
          ??? 3、同樣需要將Excel文件存儲(chǔ)為txt或csv格式
          ?
          ?
          ??? 這種方法對(duì)于權(quán)限要求高,操作性弱,僅針對(duì)于簡(jiǎn)單的數(shù)據(jù)導(dǎo)入時(shí)使用。
          ??? 關(guān)于外部表的具體操作,參見“Oracle表介紹--外部表
          ?
          ?
          ?
          三、PL/SQL Developer粘貼法
          ?
          ??? 這種方法就比較簡(jiǎn)單易用了,每次復(fù)制粘貼就行,只限于偶爾的導(dǎo)入使用,要是每天導(dǎo)入就累死人了。
          ?
          ??? 優(yōu)點(diǎn):
          ??? 1、操作便捷,簡(jiǎn)單直接
          ??? 2、僅需要最簡(jiǎn)單的update/insert/delete table權(quán)限
          ?
          ??? 缺點(diǎn):
          ??? 1、只能對(duì)一張表進(jìn)行操作,多表操作會(huì)十分復(fù)雜
          ??? 2、需要手動(dòng)操作的工作量較大
          ??? 3、所有數(shù)據(jù)需在Excel中處理完畢,導(dǎo)入時(shí)無法進(jìn)行任何簡(jiǎn)單操作
          ?
          ?
          ??? 具體操作方法:
          ?
          ??? 1、在PL/SQL Developer中選擇需要操作的表,右鍵-Edit Data;
          ?????? <也可以在查詢窗口中輸入select * from table_name for update;然后點(diǎn)擊打開那個(gè)鎖>
          ??? 2、可以直接在數(shù)據(jù)窗口中修改或粘貼新的數(shù)據(jù)(注意格式);
          ??? 3、點(diǎn)擊那個(gè)鉤(Post Change);
          ??? 4、提交數(shù)據(jù);
          ?
          ?
          四、使用Access中轉(zhuǎn)
          ?
          ??? 這種方法只是在網(wǎng)上看到了一下,對(duì)于Access沒有什么研究,但是覺得應(yīng)該會(huì)有以下缺點(diǎn)
          ?
          ??? 1、導(dǎo)入無法自動(dòng)刷新,甚至連簡(jiǎn)單的點(diǎn)擊刷新也沒有
          ??? 2、需要建立ODBC、導(dǎo)入、導(dǎo)出等多步操作,工作量極大
          ??? 3、數(shù)據(jù)導(dǎo)入到Oracle中時(shí),基本上沒有可操作性,只能最簡(jiǎn)單的操作
          ?
          ??? 這種方法唯一的優(yōu)點(diǎn)大概就是可以直接將Excel的數(shù)據(jù)導(dǎo)入到Access,但是操作步驟也比較多
          ?
          ??? 轉(zhuǎn)一下網(wǎng)上說的方法:
          ??? 1、在本地創(chuàng)建一個(gè)Access數(shù)據(jù)庫(kù),將Excel數(shù)據(jù)先導(dǎo)入到Access。(直接右鍵-導(dǎo)入-Excel)
          ??? 2、在本地創(chuàng)建ODBC,鏈接oracle數(shù)據(jù)庫(kù)。將oracle中需要導(dǎo)入數(shù)據(jù)的表以鏈接表的方式在本地Access中創(chuàng)建
          ??? 3、在Access數(shù)據(jù)庫(kù)中創(chuàng)建插入查詢將導(dǎo)入好的Excel數(shù)據(jù)導(dǎo)入到oracle中
          ?
          ?
          ??? 這種方法基本沒有什么使用價(jià)值,除非是別的什么東西都沒有的情況下被迫使用。
          ?
          ?
          ?
          五、使用SQL Server中轉(zhuǎn)
          ?
          ??? 這種方法基本上和Access一樣,使用SQL Server自帶的工具先將數(shù)據(jù)從Excel創(chuàng)建到SQL Server,再導(dǎo)出到Oracle。
          ??? SQL Server的優(yōu)點(diǎn)在于,它有自帶的導(dǎo)出工具,可以直接按向?qū)?chuàng)建ODBC、導(dǎo)入表名等。
          ?
          ??? 具體可參見“文件”中的“SQLSERVER導(dǎo)入ORACLE數(shù)據(jù)庫(kù).pdf
          ?




          -The End-

          posted on 2008-12-24 20:25 decode360-3 閱讀(3555) 評(píng)論(1)  編輯  收藏 所屬分類: Oracle

          評(píng)論

          # re: Excel數(shù)據(jù)導(dǎo)入Oracle的方法[未登錄] 2009-02-06 15:30 1
          可以使用其他編程語(yǔ)言寫一個(gè)EXCEL導(dǎo)入程序,設(shè)定時(shí)間自動(dòng)導(dǎo)入。  回復(fù)  更多評(píng)論
            

          主站蜘蛛池模板: 玉山县| 怀仁县| 绥阳县| 浦县| 阿荣旗| 肥西县| 桃园县| 张家港市| 隆德县| 柘荣县| 石棉县| 新宾| 原平市| 沽源县| 丹阳市| 和平区| 华安县| 抚顺市| 兰西县| 兰州市| 通渭县| 防城港市| 普格县| 郓城县| 化德县| 威远县| 朔州市| 望谟县| 林口县| 古丈县| 晋中市| 云梦县| 银川市| 大丰市| 深圳市| 施秉县| 丁青县| 绍兴县| 吉安市| 濮阳市| 防城港市|