<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    176142998

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      116 Posts :: 0 Stories :: 45 Comments :: 0 Trackbacks
    Oracle導入excel數據方法匯總
    摘要:在程序編制過程和數據匯總交換過程中,經常會碰到需要將其他人員在office辦公環境下編制的文件數據內容導入oracle中的情況。目前程序開發者經常使用的方法有如下幾種:1,使用oracle提供的導入工具sql*loader;2,使用plsql developer工具;3使用其他數據轉移工具做中轉站。下面我們采用實例的方式分別描述幾種導入方式的優缺點及其操作步驟。假設‘e:\test.xls’文件中存在三列數據分別代表客戶編號,客戶名稱和聯系電話。其內容如下:
    10001
    zjaxi01
    13562485246
    10002
    zjaxi02
    13562485247
    10003
    zjaxi03
    13562485248
    10004
    zjaxi04
    13562485249
    10005
    zjaxi05
    13562485250
    10006
    zjaxi06
    13562485251
    10007
    zjaxi07
    13562485252
    10008
    zjaxi08
    13562485253
    10009
    zjaxi09
    13562485254
    10010
    zjaxi10
    13562485255
    10011
    zjaxi11
    13562485256
    10012
    zjaxi12
    13562485257
    10013
    zjaxi13
    13562485258
    10014
    zjaxi14
    13562485259
    使用sql *loader
    SQL*LOADER是oracle的數據加載工具,在NT下sql*loader的命令為SQLLDR,在UNIX下一般為SQLLDR/SQLLOAD。通常用來將操作系統文件遷移到oracle數據庫中。它是大型數據倉庫選擇使用的加載方法,因為它提供了最快速的途徑(direct,parallel)。但這種方法要求存儲數據的oracle表是已經存在的。
    使用這種方法導入excel內容到oracle時,首先需要將excel文件另存為文本格式,文件類型選文本類型或者csv類型即將e:\test.xls另存為e:\test.csv。
    如果oracle沒有對應存儲數據的表結構,則需要創建表test(id,name,telphone)。
    用記事本創建sql*loader控制文件test.ctl(ctl后綴是企圖證明這是一個控制文件,但實際上這個文件后綴不重要,用戶可以自由選擇,但文件格式一定要是文本格式),內容如下:
    Load data
    Infile ‘e:\test.csv’          --數據源文件名稱
    Append|insert|replace       --append在表后追加,insert插入空表,replace替代原有內容
    Into table test            --要導入的數據庫表名稱
    [when id = id_memo]     --過濾條件
    Fields terminated by X’09’ --字段分隔符
    (id,name,telphone)        --字段名稱列表
    最后在命令窗口輸入sqlldr命令行執行導入操作Sqlldr userid = system/manager control=’e:\test.ctl’
    Sqlldr的函數關鍵字說明:
    Userid   --oracle用戶名 userid = username/password
    Control --控制文件名稱 control = ‘e:\insert.ctl’
    Log     –-日志文件名稱 log = ‘e:\insert.log’
    Bad     --損壞文件名稱
    Data     --data file name
    Discard    --discard file name
    Discardmax --number of discards to allow(默認全部)
    Skip       --導入時跳過的記錄行數(默認0)
    Load       --導入時導入的記錄行數(默認全部)
    Errors    --允許錯誤的記錄行數(默認50)
    使用plsql developer
    PL/SQL Developer是一種專門用于開發、測試、調試和優化oracle PL/SQL存儲程序單元,比如觸發器,存儲過程,函數和程序包等集成開發環境。
    在單個文件數據不多(小于10w行),并且目的表結構已經存在的情況下可以使用plsql developer工具將excel內容直接通過簡單的copy,paste操作導入oracle數據庫。具體操作方式如下:
    l         在plsql developer的sql window里輸入select * from test for update,其中test是要導入的oracle數據表名稱;
    l         執行查詢(通過點擊按鈕或者快捷鍵F8可以實現);
    l         點擊查詢結果上面的鎖狀按鈕,使得查詢到的內容處于編輯狀態。
    l         從excel數據表中copy(ctrl +C)要導入oracle中的數據,如果是單列數據導入,可以先按plsql developer中查詢結果上面的“添加(+)”按鈕,使得數據表處于添加數據狀態,然后將鼠標在plsql developer的列名稱上單擊,最后使用快捷鍵ctrl + v 完成數據導入操作,并單擊plsql developer中的“提交(對號)”按鈕提交所做的修改。
    l         如果是同時導入所有列,首先選擇copy所有數據,然后點增加(+)并點擊編輯那一行最前面的星號使得整行數據都處于被選擇狀態,最后paste即可將數據導入。
    l         如果分列導入數據,則需要逐列完成,首先選擇copy要導入的數據,然后然后點增加(+)并點擊編輯那一列的名稱,使得整列數據都處于被選擇狀態,最后paste即可將數據導入。
    使用PLSQL developer執行數據的導入和導出操作主要存在的問題是在大數據量情況下對中文數據可能出錯,估計將接收數據表的類型定義為nvarchar2的類型會比較好一點。另外,就是這種方法需要人工更多的參與,不能達到自動導入的效果。
    使用sql server中轉
        這部操作執行時,需要先用sqlserver的導入導出工具將excel內容導入sqlserver數據庫中,然后使用同樣的工具將sqlserver中轉內容導入oracle數據庫,這里需要兩次的數據復制與IO操作,效率相對是比較低的。并且根據csdn網友jkflyfox的描述,這種方式下需要將oracle文件的名稱全部大寫,否則會出錯。
     
    posted on 2008-06-16 15:17 飛飛 閱讀(549) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产精品麻豆免费版| 四虎成人免费影院网址| 亚洲天堂中文字幕在线| 亚洲精品色在线网站| 日产乱码一卡二卡三免费| 亚洲av无码成人精品区一本二本 | 亚洲av永久综合在线观看尤物| 91香蕉在线观看免费高清| 色播亚洲视频在线观看| 亚洲电影在线免费观看| 亚洲一区免费视频| 在线免费观看毛片网站| 国产亚洲蜜芽精品久久| 亚洲一区二区三区免费| 日韩精品无码免费专区午夜| 亚洲va在线va天堂va四虎| 久草视频免费在线观看| 国产成人精品亚洲日本在线| 国产精品极品美女免费观看| 全部在线播放免费毛片| 国产亚洲精品一品区99热| 四虎成人精品永久免费AV| 亚洲人成图片网站| 亚洲成av人片不卡无码久久| 伊人久久大香线蕉免费视频| 亚洲福利视频网址| 日韩在线天堂免费观看| 日本一区午夜艳熟免费| 亚洲va在线va天堂va手机| 国产一级做a爱免费视频| 中文字幕免费观看视频| 亚洲日本乱码一区二区在线二产线| 成人免费视频软件网站| jizz免费在线观看| 亚洲三级在线免费观看| 亚洲av中文无码| 麻豆一区二区免费播放网站| 日韩一级片免费观看| 亚洲第一区视频在线观看| 亚洲成a人片在线观看国产| 91免费福利精品国产|