在执行数据库DDL操作 时,有事会出现“Oracle 报 “ORA-00054 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效” 的问题。

1 原因
一般在用户修改记录之前,悲观锁就会发生作用,比如更新语句:

select ..for update
1
执行这条命令之后,oracle 将会对返回集中的数据建立行级封锁,以防止其他用户修改这些记录。

这时如果对这张表进行 ddl 操作将就会报 ORA-00054 错误。

一张表如果加了表级锁,那么就不允许对该表进行任何的 ddl 操作,否则也会报 ora-00054 错误。

解决方案:

找出哪个会话锁住了哪张表:

select l.session_id,o.owner,o.object_name
from v$locked_object l,dba_objects o
where l.object_id=o.object_id;
session_id 为会话 ID。object_name 表名。
找出引发锁的会话:

select s.username,s.sid,s.serial#,s.logon_time
from  v$locked_object l,v$session s
where l.session_id=s.sid 
order by s.logon_time;
其中的 serial# 是我们需要用到的会话序列号

杀掉会话
命令格式为:alter system kill session 'sid,serial#'

批量解锁语句:

DECLARE CURSOR mycur IS 
    SELECT B.SID,B.SERIAL# FROM V$LOCKED_OBJECT A,V$SESSION B 
        WHERE A.SESSION_ID = B.SID GROUP BY B.SID,B.SERIAL#;
 
 
BEGION
    FOR cur IN mycur
      loop
      EXECUTE IMMEDIATE ('ALTER SYSTEM KILL SESSION '''||cur.sid||','||cur.serial#||''' ');
      end loop;
END;

Oracle 报 “ORA-00054 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效” 问题的解决方法相关推荐

  1. Oracle中修改遇到“ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效”

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. Oracle 11g中想修改表名: rename ASSETPORJECT to ASSETPROJ ...

  2. ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效

    "ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效"的快速解决方法 今天在导一个临时表的数据,导出完成后准备清空数据,执行truncate命令 ...

  3. ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效---解决方法

    问题: 解决方式: 1.-- 查询锁表session_id select session_id from v$locked_object; 2:-- 查询锁表session_id 的详细数据 USER ...

  4. ORA-00054 资源正忙,但指定以NOWAIT 方式获取资源,或者超时失效

    1.查询到正在相关资源. select a.object_name objectname,              b.session_id,              c.serial#,     ...

  5. oracle之报错:ORA-00054: 资源正忙,要求指定 NOWAIT

    原文出处:http://www.cnblogs.com/Ronger/archive/2011/12/19/2293509.html oracle之报错:ORA-00054: 资源正忙,要求指定 NO ...

  6. oracle报错:ORA-00054: 资源正忙,要求指定 NOWAIT

    ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源: --首先得到被锁对象的session_id select session_id from v$locked_object; - ...

  7. Oracle删表报错ora00054,Oracle之报错:ORA-00054: 资源正忙,要求指定 NOWAIT

    在删除列.或表的时候报错"ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效",一般都是发生锁表造成的,或者上一条语句没有执行完成,阻塞造成了锁 ...

  8. oracle违法唯一约束怎么解决,Oracle “ORA-00001:违反唯一约束条件”和“ORA-00054: 资源正忙”错误解决...

    Oracle数据库对于常见的错误都会有报错提示,工作的这一年也碰到了一些错误,踩过一些坑,感谢那些前辈分享的问题和处理方案,正好这几天临近过年不太忙碌,就将一些错误描述,错误原因和解决方法整理后分享给 ...

  9. ora00054 资源正忙

    oracle之报错:ORA-00054: 资源正忙,要求指定 NOWAIT 问题如下: SQL> conn scott/tiger@vm_database Connected to Oracle ...

最新文章

  1. 百度Apollo:CTO级无人车大牛不稀缺,我们这也就百八十个吧
  2. 【树莓派学习笔记】七、(免费)内网穿透将树莓派作为服务器管理网站
  3. 如何转换为系统应用_如何将AVI转换为GIF
  4. Android Studio - 如何更改Android SDK路径
  5. 第六节:变量-可变变量
  6. atitit.提升2--3倍开发效率--cbb体系的建设..
  7. XHTML下css+div编写
  8. 扫描转换html,HTML5/CSS3 3D雷达扫描动画
  9. unity runtime时导入fbx文件
  10. tensorflow获取动态shape
  11. 钉钉打卡显示服务器忙,钉钉系统繁忙请稍后再试
  12. 实例011 阳阳买苹果
  13. 数据可视化 六种基本图标
  14. CMMI(能力成熟度集成)四个等级
  15. 案例3 淘宝点击关闭二维码
  16. 2018年工科生推免保研经历记录(含西交,上交,北航,浙大和清华等)
  17. OverlayScrollbars插件监听滚动条的用法
  18. 南邮 | 汇编实验 3.17:用户键入“通行字”,显示欢迎界面
  19. Java 垃圾回收最全讲解(GC过程、可达性分析、方法,7大回收器)
  20. Linux磁盘管理,了解磁盘管理的魅力

热门文章

  1. Devexpress PdfViewer预览pdf,禁止下载,打印,复制
  2. 新闻推荐笔记(2):Embedding-based News Recommendation for Millions of Users
  3. 解决Win10图片打开方式没有“Windows照片查看器”问题
  4. 软件团队的模式-窝蜂模式
  5. python函数教程:Python递归函数 二分查找算法实现解析
  6. C语言——初识C语言(define定义常量和宏,指针,结构体)
  7. 【故障处理】队列等待之enq: TX - row lock contention
  8. Linux系列教程虚拟机安装虚拟化开启
  9. Android Studio简易音乐播放器设计作业
  10. Android BottomSheetDialog使用,实现网易云歌单底部弹窗