Oracle ctl模版 sqlldr用法


將txt數據裝載到數據庫

數據無””,裝載定長

LOAD DATA

CHARACTER-SET ZHS16GBK

truncate/append into table a

FIELDS TERMINATED BY ‘,’

TRAILING NULLCOLS

(a position(1:8),

b position(9:38),

c position(39:57)”:c/1000000”

)

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;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM