最近我們要做產品的測試,由於裏面的數據量太少,上頭要我往數據庫的表裏加上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