在使用sqlloader的時候,可能遇到資料檔案多個,或者資料檔案格式不規範的情況,下面我們就要討論一下這些的解決辦法
1. 遇到多個資料檔案
如果遇到多個資料檔案,同時要匯入一張表中,就可以使用多個infile 語句
2,pear,$3.00,"b_2"
3,grape,$6.00,"c_5"
4,banana,$6.00,"d_2"
fruit6.dat
5,orange,$2.00,"a_1"
6,stawberry,$3.00,g_5
fruit7.dat
編寫控制檔案
load data
infile fruit6.dat
infile fruit7.dat
truncate into table fruitmarket
fields terminated by "," optionally enclosed by '"'
(fid,fname,price,address)
fruit6.ctl
執行sqlldr語句,檢視結果:
匯入成功,同時也可以看到address列上的雙引號都被去掉了,而且本身就不帶有雙引號的g_5沒有受到任何影響
2.遇到資料檔案的前幾行是其他資訊的情況
***********************************=
by jason
***********************************=
***********************************=
2,pear,$3.00,"b_2"
3,grape,$6.00,"c_5"
4,banana,$6.00,"d_2"
fruit8.dat
load data
infile fruit8.dat
truncate into table fruitmarket
fields terminated by "," optionally enclosed by '"'
(fid,fname,price,address)
fruit8.ctl
其實這種情況控制檔案是不變的,變化的地方在sqlldr命令上
這種情況需要在sqlldr命令後指明要跳過的行數(因為我連的資料庫是遠端的,所以上面使用的遠端資料庫的ip位址和服務名)
結果:還有一種要使用skip引數的情況是要匯入固定行數的記錄,比如在上面的資料檔案只匯入三條的話,可以使用load引數:
sqlplus scott/tiger control=fruit8.ctl skip=5 load=3
3.資料檔案某些字段缺失的情況
2,pear,$1.00
3,grape,$4.00,"c_5"
4,banana,$6.00,"d_2"
fruit9.dat
在這種情況下應該在控制檔案中使用trailing nullcols語句
load data
infile fruit9.dat
truncate into table fruitmarket
fields terminated by "," optionally enclosed by '"' trailing nullcols
(fid,fname,price,address)
fruit9.ctl
這樣,第二行中缺失的address會被自動的設為空(null)
結果:
SQLLoader使用簡介
sqlloader 命令介紹 1.sqlloader 是oracle 資料庫管理軟體的乙個資料匯入工具。安裝oracle 時請確認它是否被安裝 2 sqlloader 的命令sqlldr 這個可執行檔案在 oracle home bin下。3 sqlldr 的主要命令引數介紹 userid 指定使用...
SQLLoader工具的使用
實習十 sqlloader工具的使用 實驗目的 學習通過sqlloader工具把外部資料匯入到oracle資料庫中。一 sql loader涉及的檔案 控制檔案control file 匯入資料規則 日誌檔案log file 匯入資料記錄 壞檔案bad file 插入記錄出錯,如違反唯一約束,非空約...
使用SQL LOADER匯入資料
oracle的sql loader是乙個專門用於oracle導資料的工具。不過,好多dba習慣用toad匯入資料,toad這個工具。但是我覺得sql loader也不錯,特別是在批量的時候。對於初學者,我想宣告一點的是,關於那個.ctl檔案。我起初以為.ctl檔案是oracle自己的控制檔案。結果搞...