你操作的数据库对象被其他会话锁定了。通过查看v$session,v$locked_objects,all_objects可以查到是那个会话锁定了该资源。一般应该使得那个会话尽快提交他的事务,单如果你的操作很紧急,那么可能需要将那个会话KILL掉。

解决方案 »

  1.   

    alter system kill session 'sid,serial#';
      

  2.   

    http://expert.csdn.net/Expert/topic/1494/1494307.xml?temp=.7016718
    搜索‘锁’关键字,csdn中很多
      

  3.   

    IronPromises(铁诺) (  ) select  s.sid,s.machine,o.object_name,l.oracle_username,l.locked_mode,  
    'ALTER  SYSTEM  KILL  SESSION  '''||s.sid||',  '||s.serial#||''';'  Command  
    from  v$locked_object  l,v$session  s,all_objects  o  
    where  l.session_id=s.sid  and  l.object_id=o.object_id;
      

  4.   

    还可以:select s.machine, s.osuser "O/S-User", s.username "Ora-User", s.sid "Session-ID",  s.serial# "Serial", s.process "Process-ID", s.status "Status",l.name "Obj Locked",  l.mode_held "Lock Mode"  from v$session s,dba_dml_locks l,v$process p  where l.session_id = s.sid and p.addr = s.paddr
      

  5.   

    安装一个ORACLE的资源管理器那就方便多了,可以KILL掉,简洁