今天下午使用pl/sql创建一函数,刚开始函数创建是成功的。然后根据业务需求添加代码后编译,出现假死现象。遂重启服务器,drop 掉函数后,想要继续创建的时候结果编译还是一样的假死。把函数名改了之后执行成功。也就是不是代码的问题,那么这个问题如何解决?
因为该函数已经在使用中不想改换名字,请给与解决办法?

解决方案 »

  1.   

    select b.owner,b.object_name,a.session_id,a.locked_mode
        from v$locked_object a,dba_objects b
       where b.object_id = a.object_id;
    如果有死锁,查找该进程所在的spid:
       select pro.spid from v$session ses,v$process pro where ses.sid=24 and ses.paddr=pro.addr; 
    确认SPid:
       select spid, osuser, s.program from v$process p, v$session s where p.addr=s.paddr
    用OraKill
       orakill <sid> <spid>
    如:orakill ORCL 2760
      

  2.   

    谢谢。我只是不理解它为何drop了函数而不对它的 进城去处理。