ORACLE操作表时”资源正忙,需指定nowait"的解锁方法

ORACLE操作表时”资源正忙,需指定nowait"的解锁方法

问题:

       执行 drop table table_name 时,提示”资源正忙,需指定nowait"
      由于TB_PROJECT为设置主键造成只能查询而无法修改和删除的问题导致PL/SQL无响应,从而对此表一直处于锁定状态

分析:

      表示table_name表由某个用户操作时进行了锁定,必须先解锁才能继续进行操作

 解决:

      1> 通过此语句查询正在锁定的SESSION_ID:

SELECT  SESSION_ID   FROM   V$LOCKED_OBJECT,USER_OBJECTS  WHERE   V$LOCKED_OBJECT.OBJECT_ID   =   USER_OBJECTS.OBJECT_ID 

      2> 通过第一步查询到的SESSION_ID查询SERIAL#

SELECT SERIAL# FROM V$SESSION  WHERE SID='SESSION_ID'(此处为上面查询到的'SESSION_ID)

      3> 根据1,2步查询到的SESSION_ID和SERIAL#执行ALTER   SYSTEM   KILL   SESSION  '48,2476'(48为SESSION_ID的值, 2476为SERIAL#的值)

http://www.cnblogs.com/erong/archive/2009/08/02/1537153.html

 

Oracle解锁问题
执行    truncate table 报错:ORA-00054: 资源正忙,要求指定NOWAIT

 

解决:

 

通过v$session,v$locked_object查看谁锁定了资源
select t1.sid, t1.serial#, t1.username, t1.logon_time from v$session t1 , v$locked_object t2
where t1.sid = t2.session_id order by t1.logon_time

通过alter system kill session 'sid, serial#'把session kill掉
alter system kill session '6,8'

你可能感兴趣的:(ORACLE,Oracle)