將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;