一般處理Excel資料,最常用的方式是将其儲存為CSV(Comma Separated Values,逗号分隔值)格式檔案,單擊“檔案”→“另存為”指令,在“儲存類型”下拉清單框中選擇CSV
<a href="http://space.itpub.net/batch.download.php?aid=21463" target="_blank"></a>
這個是用的較多的方法,前提必須oracle資料中目的表已經存在。
大體步驟如下:
1、将excel檔案另存為一個新檔案比如檔案名為text.txt,檔案類型選文本檔案(制表符分隔),這裡選擇類型為csv(逗号分隔)也行,但是在寫後面的test.ctl時要将字段終止符改為','(fields terminated by ','),假設儲存到E盤根目錄。
2 、如果沒有存在的表結構,則建立,假設表為test,有兩列為ID,NAME.
3、用記事本建立SQL*Loader控制檔案,檔案名字尾為ctl。比如命名為test.ctl,内容如下:(--後面的為注釋,實際不需要)
load data --控制檔案辨別
infile 'E:\1.cvs' --要輸入的資料檔案名為1.cvs
replace into table test --向表test中追加記錄
fields terminated by X'09' --字段終止于X'09',是一個制表符(TAB)
(dm,ms) --定義列對應順序
備注:資料導入的方式上例中用的replace,有一下幾種:insert,為預設方式,在資料裝載開始時要求表為空;append,在表中追加新記錄;replace,删除舊記錄,替換成新裝載的記錄;truncate,同replace。
4、在指令行提示符下使用SQL*Loader指令實作資料的輸入。
1.導出地區表的1.csv檔案
"01","北京"
"02","上海"
"03","廈門"
"16","深圳"
"17","鄭州"
"18","水驿"
"19","新鄉"
"20","河南"
"21","封丘"
....
2.編輯sqlldr導出控制檔案test.ctl内容如下:
load data
infile 'e:\1.csv'
replace into table test
fields terminated by ',' optionally enclosed by '"'
trailing nullcols
(id,name)
3.結果:
查詢:
SQL> select * from test;
ID NAME
--- ----------
01 北京
02 上海
03 廈門
16 深圳
17 鄭州
18 水驿
19 新鄉
20 河南
21 封丘
已選擇9行
成功。