Excel Data 匯入oracle

來源:互聯網
上載者:User

 

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 *loaderSQL*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 dataInfile ‘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/passwordControl --控制檔案名稱 control = ‘e:/insert.ctl’Log     –-記錄檔名稱 log = ‘e:/insert.log’Bad     --損壞檔案名稱Data     --data file nameDiscard    --discard file nameDiscardmax --number of discards to allow(預設全部)Skip       --匯入時跳過的記錄行數(預設0)Load       --匯入時匯入的記錄行數(預設全部)Errors    --允許錯誤的記錄行數(預設50) 使用plsql developerPL/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檔案的名稱全部大寫,否則會出錯。  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.