问题
开发的时候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自动备份控制文件方法介绍等,若有不足之处,欢迎留言指正。感谢大家对本站的支持!
本文向大家介绍MyBatis MapperProvider MessageFormat拼接批量SQL语句执行报错的原因分析及解决办法,包括了MyBatis MapperProvider MessageFormat拼接批量SQL语句执行报错的原因分析及解决办法的使用技巧和注意事项,需要的朋友参考一下 最近在项目中有这么一段代码:下载服务器基础业务数据进行本地批量插入操作,因项目中使用mybatis进
本文向大家介绍Android 关于“NetworkOnMainThreadException”问题的原因分析及解决办法,包括了Android 关于“NetworkOnMainThreadException”问题的原因分析及解决办法的使用技巧和注意事项,需要的朋友参考一下 网络收集的原因如下,以及解决办法: 我补充总结一下: 解决办法一: 在操作网络类(socket连接)的activity的prot
本文向大家介绍Nginx 499错误问题及解决办法,包括了Nginx 499错误问题及解决办法的使用技巧和注意事项,需要的朋友参考一下 Nginx简介 Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004
本文向大家介绍易语言BUG及解决办法,包括了易语言BUG及解决办法的使用技巧和注意事项,需要的朋友参考一下 1.汇编补丁中,到字节集命令不适合含有表达式. 例: 错误用法: 局_补丁字节集 = { } 局_补丁字节集 = 局_补丁字节集 + { 137, 13 } + 到字节集 (局_申请到的地址 + 23) 这样跨进程写入后肯定不是想要的汇编代码mov [局_申请到的地址 + 23],ecx 正
本文向大家介绍ORACLE 超长字符串问题的解决办法,包括了ORACLE 超长字符串问题的解决办法的使用技巧和注意事项,需要的朋友参考一下 前两天我在工作中遇到这样一个问题,我们有一个程序是用来增量抽取EBS 中的表数据的,有的是全量抽取,即先删除原表中的数据,然后重新抽取数据,示例代码如下: 另外一种方式是增量抽取,用的是merge语句,这里就不写了;) 接触过EBS库存模块的同志们知道,INV
本文向大家介绍Android Studio卡很久(loading)的问题解决办法,包括了Android Studio卡很久(loading)的问题解决办法的使用技巧和注意事项,需要的朋友参考一下 Android Studio卡很久(loading)的问题 关于Android Studio卡在某个地方很久(更准确说应该是Loading很久)的问题,大多是因为可能在下载Gradle或者在连接其他需要f