excel表匯入oracle資料庫的問題

2021-04-22 09:49:44 字數 2366 閱讀 4886

前幾天搞了下將excel表匯入oracle資料庫的問題,連查帶問帶自己摸索,將自己弄過的方法寫出來和大家交流。這些方法也可以用於將其它格式的資料匯入到oracle中,這裡只是以excel為例。我的oracle是9i。  

方法一,使用sql*loader  

這個是用的較多的方法,前提必須oracle資料中目的表已經存在。  

大體步驟如下:  

1   將excle檔案另存為乙個新檔案比如檔名為text.txt,檔案型別選文字檔案(製表符分隔),這裡選擇型別為csv(逗號分隔)也行,但是在寫後 面的control.ctl時要將字段終止符改為','(fields   terminated   by   ','),假設儲存到c盤根目錄。  

2   如果沒有存在的表結構,則建立,假設表為test,有兩列為dm,ms。  

3   用記事本建立sql*loader控制檔案,網上說的檔名字尾為ctl,其實我自己發現就用txt字尾也行。比如命名為control.ctl,內容如下:(--後面的為注釋,實際不需要)  

load   data               --控制檔案標識  

infile   'c:/text.txt'       --要輸入的資料檔案名為test.txt  

fields   terminated   by   x'09'  --欄位終止於x'09',是乙個製表符(tab)  

(dm,ms)                                       --定義列對應順序  

;truncate,同replace。  

4   在命令列提示符下使用sql*loader命令實現資料的輸入  

sqlldr   userid=system/manager   control='c:/control.ctl'  

更詳細的介紹請檢視http://www-rohan.sdsu.edu/doc/oracle/server803/a54652_01/ch04.htm#793  

方法二   利用plsql   developer  

使用plsql   developer工具,這個可是大名鼎鼎的oracle   dba最常使用的工具。  

在單個檔案不大的情況下(少於100000行),並且目的表結構已經存在的情況下——對於excel而言肯定不會超過了,因為excel檔案的最大行為65536——   可以全選資料複製,然後用plsql   developer工具。  

1   在plsql   developer的sql   window裡輸入select   *   from   test   for   update;  

2   按f8執行  

3   開啟鎖,   再按一下加號.   滑鼠點到第一列的列頭,使全列成選中狀態,然後貼上,最後commit提交即可。  

方法三   使用其它資料轉移工具作中轉站。  

我使用的是sql   server   2000。  

先將excel表匯入sqlserver資料庫中,然後再從sql   server匯入到oracle中。這兩部操作都簡單,如果不會隨便查個幫助就可以了,要不然問我也行:)  

這裡有兩個自己的經驗:一是注意excel檔案的版本和格式要與匯入到sql   server時的資料來源匹配。如果匯入到sql   server時的資料來源選microsoft   excel   97-2000的話,而excel檔案的版本為micaosoft   excel   5.0/95   工作簿,則有可能出問題。關於如何看excle檔案格式,你開啟excel檔案,選擇另存為,即可看到像micaosoft   excel   5.0/95   工作簿或者是microsoft   office   excle   工作簿等等其它的儲存型別。  

二就是由sql   server匯入到oracle中時,記得將在oracle中的表名全部用大寫。這條經驗是花了好些時間才換來的。我剛開始導時,由於由excle匯入 sql   server的表名為小寫,然後倒到oracle中預設的也是小寫,結果出現了一些很奇怪的情況,乙個就是在enterprise   manager   console中,在所有表的列表裡面可以看到倒入的表,並且利用表資料編輯器還可以看到匯入好的資料,但是在具體的表空間下確連表也看不到,實在是奇 怪,我老是在想那錶到底跑哪去了;二就是不管在具體表空間下看不看得到,表資料總是可以看到的,但是在sql*plus或者利用plsql   developer的sql   window,寫select語句檢視資料,總是提示錯誤:ora-00942:表或檢視不存在。這個問題開始困擾了我好久,後來還是靈機一動,抱著試一 試的心理在由sql   server匯入oracle時將表名改為全部大寫(部分大寫都不行),匯入後不論sql*plus或者plsql   developer的sql   window裡寫select語句(裡面的表名用大寫或者小寫都行),都能正確的取出記錄。 

Excel資料匯入Oracle

1 開啟microsoft excel 2000 2 檔案 f 新建 n 工作簿 3 輸入資料,存檔為test.xls 4 檔案 f 另存為 a 儲存型別為 製表符分隔,起名為text.txt,儲存到c 5 連入sql plus 以system manager使用者登入,sql conn syste...

excel表的匯入

判斷匯入資訊是否與dw視窗中資訊重複 int n for n 1 to dw 1.rowcount string ls llk int ls count ls llk dw 1.getitemstring n,1 select count into ls count from cliendservi...

Excel匯入到oracle中對應的表

1 將excel檔案 f 另存為 a 儲存型別為 製表符分隔,起名為test.txt,儲存到c test.txt 2 假設現在已有需匯入的表 test1 含 兩個字段 id int age number.3 建立控制檔案 input.ctl,儲存在c 輸入 load data 1 控制檔案標識 in...