为什么我得到这个数据库错误时,我更新表?

第1行错误: ORA-00054:资源繁忙,指定NOWAIT或超时获取


当前回答

您的问题看起来像是混合了DML和DDL操作。请看这个URL,它解释了这个问题:

http://www.orafaq.com/forum/t/54714/2/

其他回答

就我而言,我很确定这是我自己的一个会话阻塞了。因此,这样做是安全的:

我发现了这个令人不快的环节: SELECT * FROM V$SESSION WHERE OSUSER='my_local_username' 会话处于非活动状态,但它仍然以某种方式持有锁。注意,在你的情况下,你可能需要使用一些其他的WHERE条件(例如,尝试USERNAME或MACHINE字段)。 使用上面获取的ID和SERIAL#杀死会话: 修改系统会话id为>,序列号为>

由@thermz编辑:如果前面的开放会话查询都不起作用,请尝试这个查询。这个查询可以帮助你在杀死会话时避免语法错误:

SELECT 'ALTER SYSTEM KILL SESSION ''||SID||','||SERIAL#||'' immediate;' FROM V$SESSION WHERE OSUSER='my_local_username_on_OS'

您的表已经被某个查询锁定。例如,您可能已经执行了“select For update”,但尚未提交/回滚并触发另一个选择查询。在执行查询之前执行一次提交/回滚。

我也面临着类似的问题。程序员不需要做任何事情来解决这个错误。我通知了我的oracle DBA团队。他们扼杀了会议,并像一个魅力。

您的问题看起来像是混合了DML和DDL操作。请看这个URL,它解释了这个问题:

http://www.orafaq.com/forum/t/54714/2/

我通过关闭一个IDE选项卡解决了这个问题。

PL / SQL开发人员 版本10.0.5.1710