oracle 11g下exp direct=y的陷阱

今天同事分享了一個案例

數據庫版本是oracle 11G,使用exp導出數據,然後imp導入。

Column :
Column :
Column :
IMP-00019: row rejected due to ORACLE error 1400
IMP-00003: ORACLE error 1400 encountered
ORA-01400: cannot insert NULL into ("HSVSDATA"."TFJYGH"."EN_LXSDS")


從生產導一個屬主到測試,使用了Direct=y導出,結果導入報如上錯誤,原因是如下:
原因是11g的一個新特性:爲了改善性能,對錶新增非空且有缺省值列的時候,ORACLE不會全表更新,只是改了數據字典,這種情況下,exp如果加了參數direct=y導致了丟失了字段值.不會導出字段的缺省值,所以報錯了。


11g下的exp 還是別加direct=y 了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章