Sql*Loader
操作步驟如下:
錄入excel測試表格,test.xls。
另存為.csv格式
創建sql*loader控制文件test.ctl,內容如下:
Load data
Infile 'c: est.csv'
insert Into table test Fields terminated by ','(column1,column2,column3,column4,column5)
需要將數據文件拷貝到對應位置
到數據庫中建立對應的測試表test
create table test (
column1 Varchar2(10),
column2 Varchar2(10),
column3 Varchar2(10),
column4 Varchar2(10),
column5 Varchar2(10)
)
執行導入命令
Sqlldr userid = system/manager control='C: est.ctl'
導入成功!
附: Sqlldr的函數關鍵字說明:
Userid --oracle用戶名 userid = username/password
Control --控制文件名稱 control = 'e:insert.ctl'
Log --日志文件名稱 log = 'e:insert.log'
Bad --損壞文件名稱
Data --data file name
Discard --discard file name
Discardmax --number of discards to allow(默認全部)
Skip --導入時跳過的記錄行數(默認0)
Load --導入時導入的記錄行數(默認全部)
Errors --允許錯誤的記錄行數(默認50)
ctl文件內容說明:
Load data
Infile 'e: est.csv' --數據源文件名稱
Append|insert|replace --append在表后追加insert插入空表replace替代原有內容
Into table test --要導入的數據庫表名稱
[when id = id_memo] --過濾條件
Fields terminated by',' --字段分隔符
(id,name,telphone) --字段名稱列表
說明:
這種方法的好處是sql*loader是oracle自帶軟件,無需安裝額外的軟件.缺點是操作比較麻煩點,而且如果表列數很多的話,輸入字段名稱列表會比較麻煩,適合導入大量數據.
PL Sql Developer 方法一
打開excel給需要拷貝的數據增加一個空的起始列 , 選中所要更新的數據,ctr+c
打開PL SQl Developer
輸入select * from tab_name for update,按F8運行
打開鎖,此時記錄集處于可以編輯的狀態,
點擊選中整行, ctrl+v,commit,大功告成:
說明:這種方法其實是利用PL/SQL developer 對于記錄集可以進行整行和多行復制粘貼的特性,toad似乎沒有這樣快速的辦法;
在excel表格的列新追加空列的原因是在PL/SQL Developer選中整行進行粘貼時,前面會有個列數的列,所以要新增加一列,否則會造成列的錯位.
這種方法處理少量數據的時候最合適,快捷方便,但是: excel的列必須與表中的列完全匹配
PL Sql Developer 方法二
使用PL SQL Developerd的text importer,這種方法簡單方便,推薦此種方法
方法很簡單:
點擊tools->text importer
在Data from txtfile 頁面選擇要導入的文件,在Data to Oracle 界面選擇要導入的庫和表即可
此時可以看到導入結果預覽,還可以查看生成的sql語句,并且對于列可以智能匹配,妙用多多.當然點擊Import 就OK了
說明:
這種方法簡單可靠,適合導入大量的數據,我猜測這個工具其實是后臺根據excel的列生成了相應的sql語句,取代人工拼寫sql語句的過程,呵呵,就算生成的sql語句因為一些原因,不是很正確,也可以手工修改.這樣既自動又可以手動加以控制,我比較推薦這種方法.
前提是要安裝PL/Sql Developer,呵呵
綜述:
我這篇文章主要介紹了兩種工具用于將excel導入oracle,如果在客戶的服務器上等環境受限的情況,沒有PL/Sql Developer的話,使用Sql*Loader是個不錯的選擇;PL/SQL Developer的兩種使用方法可以靈活使用,前者快速方便,后者可控性更好,而且無需字段匹配.
轉自:http://www.cnblogs.com/liangminzhong/archive/2010/05/18/1738693.html