SQL*Loader-951錯誤

在使用datastage開發的時候,遇到錯誤:

SQL*Loader-951: Error calling once/load initialization

ORA-00604: error occured at recursive SQL level 1

ORA-00054: resource busy and acquire with NOWAIT specified

搬出谷歌大神:

     可能是表裏索引處於 unusable state --> 導致索引unusable的原因:duplicate keys on unique constraint column,解決的方案SKIP_INDEX_MAINTENANCE or rebuild index

     我琢磨了半天,我這個表沒有索引啊,怎麼可能出現這個問題?也沒想太多,把OS重啓了事,運行JOB,成功無報錯。又試了一次,出現同樣的錯誤。正在糾結 中,無意中把delete表語句的session關掉了,JOB就正常了。 最終原因居然是:我刪除表數據之後並沒有commit,導致重新插入數據的時候報錯。太粗心了,把知識重新記一次。

 

科普自己:

     DML(select,insert,update,delete,call,explain plan,lock table,...)不自動提交

     DDL 自動提交

     DCL 自動提交

     sql*plus裏面如果沒有提交的話,正常退出sql*plus的時候就會自動提交;如果非正常退出sql*plus,不提交。

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