oracle中执行update语句无法执行

遇到oracle数据库执行update语句无法执行问题,下面是转发博主解决问题的方法
问题

开发的时候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 l o c k e d o b j e c t l o , d b a o b j e c t s a o , v locked_object lo, dba_objects ao, v lockedobjectlo,dbaobjectsao,vsession s WHERE ao.object_id = lo.object_id AND lo.session_id = s.sid;

1

2.然后删除之

ALTER system KILL session ‘SID,serial#’

作者:Trigl
来源:CSDN
原文:https://blog.csdn.net/Trigl/article/details/50725683
版权声明:本文为博主原创文章,转载请附上博文链接!

你可能感兴趣的:(Oracle,Update)