首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

上周上线碰见的ORA-00054错误回放

上周应用上线,有一个数据库脚本,包含改字段长度等操作,执行过程中,现象就是有些改字段成功了,有些执行出错,报了ORA-00054的错误。了解一下原理,就能对这个错误,有比较深入的理解了。...首先,我们模拟下报错过程,创建测试表,session 1执行update语句,但不提交,session 2执行alter table变更name字段长度,此时立即报错ORA-00054, SQL> create...modify name varchar2(5); alter table tbl_lock modify name varchar2(5)             * ERROR at line 1: ORA...-00054: resource busy and acquire with NOWAIT specified or timeout expired 我们看下报错,ORA-00054,提示的就是资源繁忙...(下篇) ---- 针对ORA-00054这问题,可以再了解一些。 从11g开始,出现了一个新的参数, ?

1.2K30
您找到你想要的搜索结果了吗?
是的
没有找到

select for update和select for update wait和select for update nowait的区别

nowait都会对查询到的当前结果集进行加锁,所不同的是,当有另外的会话在修改当前结果集中的数据,select for nowait所进行的查询操作不会进行等待,当发现结果集中的一些数据被加锁,立刻返回 “ORA...总结分析: 因为会话一,并没有commit所以test8中的ID=1的行被加锁了,所以当会话二进行select for update nowait检索到ID=1的数据行被加锁了,就立刻返回 “ORA-00054...select for update wait与select for update nowait不同的地方是,当有另外的会话对它的查询结果集中的某一行数据进行了加锁,那么它不会像nowait一样,立即返回"ORA...-00054错误",而是它支持一个参数,设定等待的时间,当超过了设定的时间,那一行数据还处于加锁的状态,那么它也会返回“ORA-00054错误,内容是资源正忙, 但指定以 NOWAIT 方式获取资源”。...,在执行select for update wait 6,如果当前查询检索的数据集中,有被加锁了的行数据,那么等待6秒,如果6秒后,其他会话,还没有执行commit释放被加了锁的数据行的话,那么返回“ORA

2.4K100

ORACLE修改表信息

SCOTT.TEST ADD ADDRESS VARCHAR2(40) --添加表列 ALTER TABLE SCOTT.TEST DROP COLUMN ADDRESS --删除表列 在修改的过程中提示 ORA...-00054: 资源正忙,要求指定 NOWAIT 分析如下: ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效 解决方法如下: ==================...2:对该表进行ddl操作将会报:Ora-00054:resource busy and acquire with nowait specified....同样这个查询的事务将会对该表加表级锁,不允许对该表的任何ddl操作,否则将会报出ora-00054错误::resource busy and acquire with nowait specified....可以通过发出 select… for update nowait的语句来避免发生阻塞,如果资源已经被另一个会话锁定,则会返回以下错误:Ora-00054:resource busy and acquire

2.1K30

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券