现象:就是这个包debuger 死在那里。强制关闭后,该包可以重新编译。也可被其他程序调用执行。就是不能debug。各位大虾,会是什么原因呢?求教了!!!!!!!

解决方案 »

  1.   

    会不会是因为有死锁的进程在?如果有那我如何知道是哪个进程?
    还有我如何杀掉一个数据库用户如 test 下所有的进程?
      

  2.   

    现在是发现pkg 太大了,把pkg分成2个包就没有这个问题。我用的是9i。就是不知道是不是只能这么解决。哎
      

  3.   

    在说了,你执行pakage的时候,应该是调用其中的某一个function,不会太大吧,你要调试的时候,执行一个方法来调试
      

  4.   

    1。有可能是你的的执行过程花费的时间太长了
    2。查询死锁的进程的方法如下:
       select t2.username,b.object_name, t2.sid, t2.serial#, t2.logon_time,t2.TYPE
        from v$locked_object t1, v$session t2,all_objects b
       where t1.session_id = t2.sid
             and t1.OBJECT_ID = b.object_id
             and b.object_type = 'TABLE'
       order by t2.logon_time;
    3。杀死进程方法,必须要有DBA的权限
       alter system kill session '139,36119'     --sid,serial
      

  5.   

    先诊断是什么问题-_-#用Oracle 工具,看看究竟卡在什么地方。ASH,ADDM,AWR,哪个用起来趁手用哪个
      

  6.   

    最新发现可以通过plsqldev 中设置,debugger 中 update call stack after each step的勾选去掉就可以。