Oracle锁定的表,被记录在其系统表中。 v$locked_object
可执行:
elect * from v$locked_object;
查看锁定记录的部分信息。
查看被锁定的表:
select b.owner,b.object_name,a.session_id,a.locked_mode
from v$locked_object a,dba_objects b
where b.object_id = a.object_id;
或者:
select p.spid,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
c.object 为锁定表名
查看锁定表对应的session信息:
select b.username,b.sid,b.serial#,logon_time
from v$locked_object a,v$session b
where a.session_id = b.sid order by b.logon_time;
查询出导致锁定该表的session。然后kill掉该session。
解锁该表:
alter system kill session'1025,41' 1025 为session表对应的sid 。 41为serial。 即v$session表的serial#字段。