1.使用表名,在v$locked_object l,dba_objects o,v$session s级联查询该表是否锁住了。
SELECT /*+ rule */ lpad(' ',decode(l.xidusn ,0,3,0))||l.oracle_username User_name,
o.owner,o.object_name,o.object_type,s.sid,s.serial#ORDER BY o.object_id,xidusn DESC
2.如果查出结果,那表名该表被锁住了。
alter system kill session '1025,12435' ; --即为上面查出的SID,SERIAL#字段。
即可杀掉锁住该表的进程。
3.杀掉并不表示改锁已解除。oracle会对原有进程的操作进行rollback。
SELECT a.used_ublk
FROM v$transaction a, v$session b
WHERE a.addr = b.taddr AND b.sid = 1077 ; ---即为上面查出来的SID字段。
如果查出为0或者无记录,则表示回滚完。否则直到为0表示回滚完。