最近我們要做產品的測試,由於裡面的資料量太少,上頭要我往資料庫的表裡加上10000條記錄。我想如果一條一條地往裡加,還不要幾個月呀,人也要被累死。所以,我很快地就想到了利用工具加。
就上網搜尋,大多介紹的是用SQLLDR工具從excel中匯入到Oracle表中。但是寫得不是很清楚,如果照著上面的去做,沒有成功的。
我就把我的方法,結合從網上搜尋到的資料,合并成完整的步驟,希望對大家有所協助:
方法:
一、在本機安裝oracle10g 或11g,再安裝PLSQL工具
二、在Oracle 10g/11g 裡配置Net Manager,通過這個工具。配置好要串連的資料庫
三、運行PLSQL,查詢一下你想匯入資料的表記錄
四、使用SqlLoader工具
1、MicroSoft Excel檔案(裡面就是你想要匯入的內容,和表裡的記錄格式要一致)(F)→另存新檔(A)→
檔案類型為:定位字元分隔,起名為text.txt,儲存到C:/
2、連入SQL*Plus
以system/manager使用者登入,
SQL> conn system/manager
建立表結構
SQL> create table test ( id number,--序號 username varchar2(10), --使用者名稱 password varchar2(10), --密碼 sj varchar2(20) --建立日期); 如果有現成的表,建立表結構在此就可以略過了。
3、建立SQL*Loader輸入資料所需要的檔案,均儲存到C:/,用記事本編輯:
控制檔案:input.ctl,內容如下:
load data --1、控制檔案標識
infile 'test.txt' --2、要輸入的資料檔案名為test.txt
append into table test --3、向表test中追加記錄
fields terminated by X'09' --4、欄位終止於X'09',是一個定位字元(TAB)
(id,username,password,sj) --定義列對應順序
a、insert,為預設方式,在資料裝載開始時要求表為空白
b、append,在表中追加新記錄
c、replace,刪除舊記錄,替換成新裝載的記錄
d、truncate,同上
4、在DOS視窗下使用SQL*Loader命令實現資料的輸入
C:/>sqlldr userid=system/manager control=input.ctl
預設記錄檔名為:input.log
預設壞記錄檔案為:input.bad
5、串連到SQL*Plus中,查看是否成功輸入
我舉一個實際的例子吧:
連入SQL*Plus
以system/manager使用者登入,
SQL> conn system/manager
控制檔案:input.ctl,內容如下:
load data
INFILE 'c:/loop.txt'
APPEND INTO TABLE 表名
fields terminated by X'09'
TRAILING NULLCOLS
(欄位名1,
欄位名2 ,
欄位名3 Date "YYYY-MM-DD
HH24:MI:SS" , 註:這是日期型欄位
欄位名4 ,
...
欄位名n-1,
欄位名n)
在原生DOS視窗下使用SQL*Loader命令實現資料的輸入
C:/>sqlldr userid=system/manager@資料庫執行個體名 control=input.ctl