今天用 JetBrains DataGrip 连接Oracle 数据库操作数据库表时,命令update 和delete 均无法执行,一直卡着久久无法成功.试了很多次都是这样!这种情况下我是可以执行 query 操作的。 因为是第一次遇到这种情况,当时懵逼了一会。
Google一下,才发现是我操作某一个表启动了事务但是没有提交,然后我操作的表就被我锁住了,再然后我后面的操作就一直是处于假死状态(卡住了),下面详细记录一下我的处理过程。
一、首先通过SQL查询被锁定表
select p.spid,
a.serial#,
c.object_name,
b.session_id,
b.oracle_username,
b.os_user_name
from v$process p, v$session a, v$locked_object b, all_objects c
where p.addr = a.paddr
and a.process = b.process
and c.object_id = b.object_id;
二、解锁被锁定的表
alter system kill session 'sid, serial#';
--alter system kill session '25,7357'
然后一切就正常了~~