求救:更新包和包体时,等了好久,出现ora-04021 好像是被挂起了,如何解决,加急!在线等,万分感谢
具体错误信息 :ORA-04021 timeout occurred while waiting to lock object 登录名.包名
我在网上也查了很多,结果如下:1.可能被锁住 查看v$locked
selectb.sid,b.serial#,b.machine,b.terminal,b.program,b.process,b.status from v$lock a , v$session b
where a.SID = b.SID 我在执行了这一步的时候,等了很久,没有结果.2.可能被挂起 查看v$session_wait select b.serial#,a.* from v$session_wait a,v$session b where a.sid = b.sid我执行这一句,查出了55条记录,我现在该如何解决?小弟新手,请大侠们指点,万分感谢,在线等

解决方案 »

  1.   

    select /*+ rule */ b.sid,
           b.serial#,
           b.machine,
           b.terminal,
           b.program,
           b.process,
           b.status
      from v$lock a, v$session b
     where a.SID = b.SID
     这样,速度就快了
      

  2.   

    2楼老大,我按您给的SQL,得出28条数据,然后该怎么办啊?
      

  3.   

    你这里是update package body被锁可以查查看dba_ddl_locks 看看这里的状况,把对应的session杀掉
      

  4.   

    基本上,kill session是没有用的,你就等晚上没什么人用的时候重启吧
    你的那个语句是查不出锁的具体情况的
      

  5.   

    肯定是被锁住了,进企业管理器将相关session 全部kill,然后更新包和包体。
      

  6.   

    谢谢各位的帮忙,问题已解决.plsql 里点击TOOLS 下 SESSION 可以查看所有的SESSION,找出自己用户名及自己机器名下的SESSION, KILL掉,OK!!!