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,不提交。

例子:

insert into src.dw_sjc_q_chel_visit_record_d(appkey,method,time,request,response,provider,isbilling)
select appkey,method,time,request,response,provider,isbilling from dw_biz_credit_access_bf
commit;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM