关于ORA-08177的问题 问题描述:现在有大量的DELETE语句和INSERT语句进行批处理(按设计要求先DELETE指定数据,再INSERT数据),之后,在commit的时候,有时会报ORA-08177的错误。查资料时看到有说在进行DELETE语句和INSERT语句批处理时会出现这类情况,请问各位高手,ORA-08177问题应该如何解决…… 谢谢各位! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Oracle產生這個錯誤是當一個可序列化的事務試圖update或delete數據,但這個數據已經在該可序列化事務開始之後被另一個事務修改並commit。所以你可以在程序中捕獲該異常,然後重新開始該事務。 ORA-08177 can't serialize access for this transactionCause: Encountered data changed by an operation that occurred after the start of this serializable transaction.Action: In read/write transactions, retry the intended operation or transaction. deletecommitinsertcommit肯定是会事务冲突的 delete 完之后就commit,避免事务冲突delete。commit;insert。commit; 我是用deleteinsertcommit 如果这样做应该是没有问题了。可是如果数据量大的话,执行一个sql就commit一下,是很可怕的啊…… 谢谢!这份资料我在网上也查到过,大体上说是在一个序列化中,如果后一个数据库操作修改前面的数据库操作,就会出现类似的问题。我现在把批处理的隔离级别设定为read committed,不知道这样是不是可以啊? 数据量大,只要不频繁删除,插入,delete,commit,insert,commt,这种方式就应该没有问题,如果大数据量删除后,大数据量插入,或过于频繁的话,可以再固定时间做这些操作:可以先每1000条删除,commit,直到删完,然后每1000条插入,commit,直到完。 时间不能固定,是人为控制的;数据量也不能确定。大量的commt对数据库影响很大…… sql,2选1 存储过程抛出异常,怎样产生日志信息??? 请教一个存储过程如何写! 有没有这种搜索啊? 关于cursor的fetch的一个小问题,在线等待!!!!!!!!!!!!!!!!!!! 同步和优化 索引,急急急 急急急!调用存储过程后,数据库发出ORA-3127错误,说还有活动操作存在? 监听器的问题! 有关oracle mangerment server的几个问题。 关于oracle 中行变量的问题! ORA-06550,PLS-00103错误,求助! 紧急求救!重装系统后,该怎样恢复oracle数据库啊?
所以你可以在程序中捕獲該異常,然後重新開始該事務。
commitinsert
commit肯定是会事务冲突的
delete。
commit;insert。
commit;
我是用
delete
insert
commit
谢谢!这份资料我在网上也查到过,大体上说是在一个序列化中,如果后一个数据库操作修改前面的数据库操作,就会出现类似的问题。我现在把批处理的隔离级别设定为read committed,不知道这样是不是可以啊?
如果大数据量删除后,大数据量插入,或过于频繁的话,可以再固定时间做这些操作:
可以先每1000条删除,commit,直到删完,
然后每1000条插入,commit,直到完。
时间不能固定,是人为控制的;数据量也不能确定。大量的commt对数据库影响很大……