错误ORA-00054资源正忙,在oracle11g中指定了NOWAIT或超时已过期
我正在使用oracle11g数据库。我有一个名为phonenumbers_tbl的表,我在该表上执行了DROP命令。但它正在返回错误资源忙碌,并在指定NOWAIT或超时过期的情况下获取。之后,我使用命令altersession set ddl_lock_timeout=600更改会话,然后再次尝试删除该表。但此错误仍然会再次持续请先尝试执行此操作,并检查其他会话或您的会话中是否有人在该表上设置了锁。如果您已在该表上设置了锁,请尝试执行提交/回滚。如果其他人设置了锁,请询问他/她或您是否有权终止他的会话。然后删除该表错误ORA-00054资源正忙,在oracle11g中指定了NOWAIT或超时已过期,oracle11g,oracle-sqldeveloper,database-administration,Oracle11g,Oracle Sqldeveloper,Database Administration,我正在使用oracle11g数据库。我有一个名为phonenumbers_tbl的表,我在该表上执行了DROP命令。但它正在返回错误资源忙碌,并在指定NOWAIT或超时过期的情况下获取。之后,我使用命令altersession set ddl_lock_timeout=600更改会话,然后再次尝试删除该表。但此错误仍然会再次持续请先尝试执行此操作,并检查其他会话或您的会话中是否有人在该表上设置了锁。如果您已在该表上设置了锁,请尝试执行提交/回滚。如果其他人设置了锁,请询问他/她或您是否有权终止他
select session_id "sid",SERIAL# "Serial",
substr(object_name,1,20) "Object",
substr(os_user_name,1,10) "Terminal",
substr(oracle_username,1,10) "Locker",
nvl(lockwait,'active') "Wait",
decode(locked_mode,
2, 'row share',
3, 'row exclusive',
4, 'share',
5, 'share row exclusive',
6, 'exclusive', 'unknown') "Lockmode",
OBJECT_TYPE "Type"
FROM
SYS.V_$LOCKED_OBJECT A,
SYS.ALL_OBJECTS B,
SYS.V_$SESSION c
WHERE
A.OBJECT_ID = B.OBJECT_ID AND
C.SID = A.SESSION_ID
ORDER BY 1 ASC, 5 Desc
对!!最后,我得到了一个解决方案,将表phonenumber\u tbl移动到另一个表空间系统并删除了该表。首先获取表锁会话,然后终止会话
select session_id "sid",SERIAL# "Serial",
substr(object_name,1,20) "Object",
substr(os_user_name,1,10) "Terminal",
substr(oracle_username,1,10) "Locker",
nvl(lockwait,'active') "Wait",
decode(locked_mode,
2, 'row share',
3, 'row exclusive',
4, 'share',
5, 'share row exclusive',
6, 'exclusive', 'unknown') "Lockmode",
OBJECT_TYPE "Type"
FROM
SYS.V_$LOCKED_OBJECT A,
SYS.ALL_OBJECTS B,
SYS.V_$SESSION c
WHERE
A.OBJECT_ID = B.OBJECT_ID AND
C.SID = A.SESSION_ID
ORDER BY 1 ASC, 5 Desc
选择a.sid、a.serial、a.username、c.os\u user\u name、a.terminal、,
b、 object\u id,substrb.object\u name,1,40 object\u name
来自v$session a、dba_对象b、v$locked_对象c
其中a.sid=c.session\u id
b.object_id=c.object_id
更改系统终止会话“sid,串行” :这不是解决方案,它是另一种选择:,请尝试找出这会给您带来nowait错误的原因。