ORACLE操作表时弹出提示框:”资源正忙,需指定nowait"的解锁方法

我们用oracle可视化工具(Oracle SQL Developer)创建表并插入数据之后,可能会忘记提交事务,然后去忙别的事情去了,这样一来,事务没有提交上去,用sql语句是无法找到你刚才创建而忘记提交的表的。在你想起要提交的时候,可能你已经关闭了工具之前创建表的sql窗口。于是,你急了,你想删除,却发现怎么也删除不了。而且还会弹出一个提示框,大概内容是:资源正忙,需指定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

你可能感兴趣的:(数据库)