Oracle ctl模版 sqlldr用法

將txt數據裝載到數據庫sql

數據無」」,裝載定長數據庫

LOAD DATAapp

CHARACTER-SET ZHS16GBKit

truncate/append into table aio

FIELDS TERMINATED BY ‘,’table

TRAILING NULLCOLSselect

(a position(1:8),密碼

b position(9:38),im

c position(39:57)」:c/1000000」error

)

a char(8)

b char(30)

c number(18,6)

 

數據有」」,

LOAD DATA

CHARACTER-SET ZHS16GBK

truncate into table a

FIELDS TERMINATED BY ‘分隔符’

OPTIONALLY ENCLOSED BY ‘「‘

TRAILING NULLCOLS

(」a」 「trim(:a)」,

」b」 「trim(:b)」

)

 

例如一個字段無分隔符

 

LOAD DATA

CHARACTER-SET ZHS16GBK

INFILE ‘error.txt’

BADFILE ‘error.bad’

DISCARDFILE ‘error.dsc’

truncate into table a

(acount position(1 :30))

 

FILEDS給出記錄中字段的分隔符。

FILEDS[TERMINATED [BY] (WITHSPACE|’CHARCTER’)]

[OPTIONALLY] ENCLOSED [BY] ‘CHARCTER’]

TERMINATED 讀完前一個字段讀下一個字段

WITHSPACE 結束符是空格的意思。包括空格,tab,換行符,換頁符及回車。

OPTIONALLY ENCLOSED 表示數據由特殊字符括起來。使用OPTIONALLY同時要使用TERMINATED

TRAILING NULLCOLS變表字段沒有對應值容許爲空

 

sqlldr 用戶名/密碼@數據庫名 data=/etl/a.txt control=/etl/b.ctl log=/etl/c.log

 

裝載數據若是有重複數據可刪除主鍵

select constraint_name from user_constraints where constraint_type=‘p’ 

and owner=‘用戶名’ and table_name=‘大寫表名’;

alter table a drop constraint xxx;

導入數據後增長主鍵

alter table a add constraint pk_a primary key(xx,xx);

 

或者

alter table a drop primary key;

數據加載後再建主鍵

alter table a add primary key(zz,xx);

違反惟一標誌時候

alter table a enable row movement;

相關文章
相關標籤/搜索