sqlldr經常報錯的問題

yellowlee發表於2012-05-19

sqlldr經常報錯的一些問題:

1,日期格式
文字資料格式中的日期格式必須注意,而在control檔案中需要顯示說明格式,如:col1 date 'yyyy-mm-dd hh24:mi:ss'

2,sqlserver datetime to oracle timestamp
sqlserver匯出的時間格式常需要轉換,其datetime格式對應oracle的timestamp格式,需要使用to_timstamp來進行轉換,或者使用timestamp來強制說明
如:
control檔案內:col1 timstamp 'yyyy-mm-dd hh24:mi:ss'
或者:
select to_timestamp('2010-01-01 00:00:00.12','yyyy-mm-dd hh24:mi:ss') from dual

3, sqlldr decode
有時候需要在匯入資料的時候就要做一些轉換,那麼可以使用decode來解決
比如,時間欄位,sqlserver有時預設為0,預設為空,或者NULL,那麼就需要使用decode和to_timestamp一起來解決了

4,sqlserver NULL
上面說到sqlserver的NULL,可以使用gsub替換掉NULL為空

5,null cols
欄位值為空的時候,需要設定TRAILING NULLCOLS

6,windows to unix ^M
從windows建立的文字拷入unix,需注意末尾的換行符,可以替換掉:
tr -s "[\015\032]" "[\012*]" < customer_dl1.txt > customer_dl_new1.txt

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

相關文章