前提:该用户必须拥有DBA权限,否则提示找不到表和视图
一,oracle 查看哪些表被锁
select c.sid, c.serial#, c.username, c.osuser, b.owner, b.object_name, a.locked_mode, p.spid
from v$locked_object a, dba_objects b, v$session c, v$process p
where a.object_id = b.object_id
and a.session_id = c.sid
and c.paddr = p.addr ;
二,Oracle解锁表
诊断出锁的状态后,若发现该阻塞其它用户进程的进程是正常操作中,则可通知该用户对其进行提交,从而达到释放锁资源的目的;若为非正常操作,即,其状态为"inactive",且其Seconds已为较多长时间,则可执行以下语句将该进程进行清除,系统会自动对其进行回滚,从而释放锁住的资源。
alter system kill session 'sid, serial#';