时间:2021-05-24
问题
开发的时候debug到一条update的sql语句时程序就不动了,然后我就在plsql上试了一下,发现plsql一直在显示正在执行,等了好久也不出结果。但是奇怪的是执行其他的select语句却是可以执行的。
原因和解决方法
这种只有update无法执行其他语句可以执行的其实是因为记录锁导致的,在oracle中,执行了update或者insert语句后,都会要求commit,如果不commit却强制关闭连接,oracle就会将这条提交的记录锁住。由于我的java程序中加了事务,之前debug到一半的时候我强制把工程终止了,这样就导致没有执行事务提交,所以oracle将代码中update那一条的记录锁了。可通过下面两步解决:
1.首先查询锁定记录
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;2.然后删除之
ALTER system KILL session 'SID,serial#'总结
以上就是本文关于oracle执行update语句时卡住问题分析及解决办法的全部内容,希望对大家有所帮助。感兴趣的朋友可以参阅:ORACLE SQL语句优化技术要点解析、浅谈oracle rac和分布式数据库的区别、Oracle RMAN自动备份控制文件方法介绍等,若有不足之处,欢迎留言指正。感谢大家对本站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
正在看的ORACLE教程是:Oracle8i字符集乱码问题析及其解决办法。一、问题描述 SQLPlusWorkSheet是一个窗口图形界面的SQL语句编辑器,
AndroidHandlerleak分析及解决办法InAndroid,Handlerclassesshouldbestaticorleaksmightoccur
很多程序员在使用codeigniterCLI下执行一个大批量数据导入的问题时,会一直出现内存过高的情况,下面对此分析器原因及解决办法。CIdb会将所有的查询sq
ios正在准备更新卡住了的原因及解决办法如下: 1、网络的问题,更换网络尝试。 2、系统正在准备更新,耐心等待。 3、手机储存不足,清理尝试。 4、将下
背景本文主要测试MySQL执行update语句时,针对与原数据(即未修改)相同的update语句会在MySQL内部重新执行吗?测试环境MySQL5.7.25Ce