首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >alter启用表锁;和ORA-00054

alter启用表锁;和ORA-00054
EN

Stack Overflow用户
提问于 2011-04-07 10:37:29
回答 1查看 7.8K关注 0票数 0

我错误地使用alter禁用table lock子句禁用了表上的锁。现在,我希望启用它的锁,因为我想使用以下状态更改表名:

SQL> alter account.acctbk_payment_seq启用表锁;alter account.acctbk_payment_seq启用表锁*第1行出错: ORA-00054:资源繁忙,并获得指定的或超时的

有理想吗?

谢谢你的答复。ora 1120为例:

代码语言:javascript
复制
create table scott.t8 (id number);
alter table scott.t8 disable table lock;
alter table scott.t8 enable table lock;

ORA-00054:资源繁忙,并使用指定的NOWAIT或超时获取

EN

回答 1

Stack Overflow用户

发布于 2011-04-07 12:52:36

来自Oracle文档:

启用表锁指定启用表锁以启用表锁,从而允许对表进行DDL操作。在Oracle数据库启用表锁之前,所有当前正在执行的事务必须提交或回滚。

注意,这并不表示“正在使用表的所有当前执行事务”。我不确定这是否真的意味着在整个实例中不可能有任何未完成的事务,但可能是这样。

尝试摆脱所有访问数据库的会话,特别是任何可能对此表打开事务的会话。如果仍然得到错误,重新启动实例可能会有所帮助。

更新:听起来您可能需要一些来自Oracle的帮助。但我在支持网站上搜索了一下,发现了一些可能的原因。可能会有一个可疑的分布式事务接触到表。查看这些查询是否返回任何内容,如果返回,则需要解决这些挂起的事务:

代码语言:javascript
复制
SELECT * FROM DBA_2PC_PENDING;
SELECT * FROM DBA_2PC_NEIGHBORS;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5579735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档