1. 程式人生 > >SQL*Loader-951錯誤

SQL*Loader-951錯誤

ica 知識 lec 自己 lock rc.d bsp rec res

在使用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;

SQL*Loader-951錯誤