Oracle   发布时间:2022-05-17  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了oracle执行update语句时卡住问题分析及解决办法大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

问题


开发的时候deBUG到一条update的sql语句时程序就不动了,然后我就在PLsql上试了一下,发现plsql一直在显示正在执行,等了好久也不出结果。但是奇怪的是执行其他的SELEct语句却是可以执行的。

原因和解决方法


这种只有update无法执行其他语句可以执行的其实是因为记录锁导致的,在Oracle中,执行了update或者insert语句后,都会要求commit,如果不commit却强制关闭连接,Oracle就会将这条提交的记录锁住。由于我的java程序中加了事务,之前deBUG到一半的时候我强制把工程终止了,这样就导致没有执行事务提交,所以Oracle将代码中update那一条的记录锁了。可通过下面两步解决:

1.首先查询锁定记录

div class="codecode">
SELECT s.sid,s.serial# FROM v$locked_object lo,dba_objects ao,v$session s WHERE ao.object_id = lo.object_id AND lo.SESSION_ID = s.sid;

大佬总结

以上是大佬教程为你收集整理的oracle执行update语句时卡住问题分析及解决办法全部内容,希望文章能够帮你解决oracle执行update语句时卡住问题分析及解决办法所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: