locked by transaction

今天晚上在做oracle数据库查询时,又他么的碰到锁表了。我看了好久,才发现IDEA的数据库界面没有点击自动提交按钮。导致锁表。锁表的提示是

locked by transaction:select ....

分析后想起来是锁表了。然后就查询了百度,在CSDN博客中找到如下解决方法:

新建查询,输入:

SELECT s.username,l.OBJECT_ID,l.SESSION_ID,s.SERIAL#,l.ORACLE_USERNAME,l.OS_USER_NAME,l.PROCESS FROM V$LOCKED_OBJECT l,V$SESSION S WHERE l.SESSION_ID=S.SID;

这时候可以查到SESSION_ID和SERIAL#

关键的一步就是

alter system kill session  '200,348';

其中200是SESSION_ID,348是SERIAL#的值。就可以解决了。

select object_name,machine,s.sid,s.serial# from v$locked_object l,dba_objects o ,v$session s where l.object_id=o.object_id and l.session_id=s.sid;

参考来源:http://blog.csdn.net/until_tl/article/details/71774786

原文地址:https://www.cnblogs.com/zhangdl/p/oracle.html