前幾天搞了下將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...