Oracle Sql loader 匯入資料指令碼的編寫過程

kuqlan發表於2011-07-27

今天同事打電話說幫他匯入資料,通pl sql匯入非常慢(幾個小時都不行)。因此我採用oracle sql loader進行了匯入。

1、文字檔案有兩個欄位,因此根據這個生產了表:

SQL> create table rep.tmp_znk_yb(

2 znkh varchar2(11),

3 jmmc varchar2(60)

4 )

5 tablespace rep;

Table created

[@more@]

2、在伺服器上編寫sql loaderctl檔案:

[boss]@db1$more znk.ctl

LOAD DATA

CHARACTERSET ZHS16GBK

INFILE '20110727.txt'

APPEND

INTO TABLE rep.tmp_znk_yb

FIELDS TERMINATED BY ','

(

znkh,

jmmc

)

如果另個欄位用空格(即,中間沒有標點符號)分割的,則可以將

FIELDS TERMINATED BY ',' 改為FIELDS TERMINATED BY X'09' 即可。

3、在伺服器上編寫sql loadersh指令碼:

[boss]@boss-db1$more znk.sh

. /export/home/oracle/.bash_profile

cd /export/home/oracle/bcp/bossznk

sqlldr sa/xxx@boss1 control=znk.ctl log=log/znk.log bad=log/znk.bad

echo "mn_imp operation Success!"

4、在伺服器上生成log資料夾:

[boss]@xjboss-db1$mkdir log

5、將txt檔案上傳的伺服器,並放到指令碼制定的位置。

6、執行指令碼:

[boss]@boss-db1$./znk.sh

幾分鐘就匯入完畢,詳細執行結果在log目錄下的znk.log裡。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/18841027/viewspace-1053079/,如需轉載,請註明出處,否則將追究法律責任。

相關文章