oracle 匯入報錯:field in data file exceeds maximum length

淺雨涼發表於2018-05-08

今天用sqlldr匯入資料時候報錯:

” Record 1: Rejected – Error on table ks_test, column khname.
Field in data file exceeds maximum length “

看到這個錯誤後以為是欄位值過小導致,將原來的varchar2(1000) 改到了varchar2(2000)

發現還是不可以,依舊報如上錯誤,於是懷疑是sqlldr自身存在某些限制了。

查了下,發現果然如此。

原來表中定義的欄位REFUSE_REASON  雖然是VARCHAR2(1000);

        但是用控制檔案(CTL)中預設為是char型別。

        所以,當該列資料長度超過255(char型別長度)時會提示出錯。

解決辦法:

      將CTL檔案中的 “REFUSE_REASON” 改為  “REFUSE_REASON  char(2000)” 即可!

注意是  char 型別 而不是 varchar型別!

 

 

相關文章