您的位置:首页 > 数据库 > Oracle

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

2015-04-27 15:24 141 查看
我们用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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐