今天在修改表结构时,Oracle报错提示为“资源正忙,但指定以Nowait方式获取资源”,后来查明原因是我之前的一个修改表数据的语句执行完成了,但是没有commit,所以再对同一张表修改表结构时就报这个错误了。将前一个语句commit或者回滚再执行修改表结构的语句就不再报错。
在网上找到比较一致描述的原因解释如下:
ORA-00054 resource busy and acquire with NOWAIT specified
Cause: The NOWAIT keyword forced a return to the command prompt because a resource was unavailable for a LOCK TABLE or SELECT FOR UPDATE command.
Action: Try the command after a few minutes or enter the command without the NOWAIT keyword.
原因:对表进行相关操作时,该表被锁定,或表正在被其他程序占用,导致系统忙。
解决:对表解锁或等待完成。