如果你发现无法对一个表进行修改、删除等操作时,你可以利用以下语句查询是否是该表被锁住了
--查询锁
select sess.sid,sess.serial#, lo.oracle_username,lo.os_user_name,ao.object_name,lo.locked_mode
from v$locked_object lo,dba_objects ao,v$session sess
where ao.object_id = lo.object_id
and lo.session_id = sess.sid;
select sess.sid,sess.serial#, lo.oracle_username,lo.os_user_name,ao.object_name,lo.locked_mode
from v$locked_object lo,dba_objects ao,v$session sess
where ao.object_id = lo.object_id
and lo.session_id = sess.sid;
其中sid和serial#字段用于下面解锁语句,oracle_username,os_user_name,object_name分别是数据库的登录名,用户登录的角色和被锁住的表名称
用SYSDBA角色登录才有权限执行下面的解锁操作,其中的两个数字分别是上面查询出来的sid和serial#字段,有几个锁住了,要解锁几条就执行相应的几条语句。
--解锁
alter system kill session '208,44679';
alter system kill session '208,44679';