发现某张表被锁住了,怎么解决?
请高手详细解答一下,万分感谢!

解决方案 »

  1.   

    DML语句不会锁表的,DML语句只锁行,而DDL才会销表.你可以查询你此表的锁
    select 'kill -9 ' || d.spid, c.object_name,a.USERNAME,a.OSUSER,a.MACHINE, a.STATUS,'ALTER SYSTEM KILL SESSION '''||a.sid||','||a.SERIAL#||''';'
    from v$session a ,v$locked_object b,dba_objects c,v$process d
    where a.SID = b.SESSION_ID
    and b.OBJECT_ID = c.object_id
    and a.paddr=d.addr
    and c.object_name='表名'
      

  2.   

    不好意思,上面写错了
    DML语句不会锁表的,DML语句只锁行,而DDL才会锁表.
      

  3.   

    查询 v$lock、v$session、dba_tables
    看看是那个进程所了你要用的表
    然后:alter system kill session 'sid,serial#' 杀掉会话即可。
      

  4.   

    执行alter system kill session 'sid,serial#' ,
    出现ORA-01031: insufficient privileges的错误
      

  5.   

    你权限不够,你以DBA进行就OK了
      

  6.   

    查询
    select t2.username,t2.sid,t2.serial#,t2.logon_time 
    from v$locked_object t1,v$session t2 
    where t1.session_id=t2.sid order by t2.logon_time;
    解锁
    alter system kill session 'sid,serial#';
      

  7.   

    wwwzjb(zjb) ( ) 信誉:100    Blog   加为好友  2007-6-20 11:42:38  得分: 0  
     
     
       
    不好意思,上面写错了
    DML语句不会锁表的,DML语句只锁行,而DDL才会锁表.
    ===========================================================================
    DML语句有时也回锁表的.