水煮oracle40----oracle调试工具对比使用

简介:
     工欲善其事,必先利其器!学习oracle也是如此,掌握其工具的使用,也是对于我们学习oracle的重要武器,对比oracle第三方工具PL/SQL developer和Toad for oracle 12对plsql程序的调试功能!
1.调试前提

plsqlDev和toad调试功能都是利用包dbms_debug包实现的,首先查询该package是否安装:
sql>select status from dba_objects where object_name=upper('dbms_debug');

dbms_debug包的安装,以sys用户登录后运行: sql> @?/rdbms/admin/prvtpb.plb

在利用plsqlDevIDE做调试时,有时会发生失去响应,此时可执行
sql>alter system flush shared_pool              试试,

如果还不行,建议改用TOAD来调试。plsqlDev在调试这一块做的不完善。

关于调试权限

Debug当前schema的过程,则必须给当前shema对应的用户授如下权限:

例如soctt要调试scott.myfunction
则以sys执行
sql>grant debug connect session to SCOTT;

Debug其它schema的过程,可以加debug any procedure 权限调试

或是只针对单个被调试的过程授权 grant debug on “过程” to “调试用户”;

特别注意:

将存储过程执行编译后,才可以执行单步调试(PL/SQL DEVELOPER和TOAD都是必须首先执行编译)。

示例:将函数DAY编译成调试状态:

sql>ALTER FUNCTION DAY COMPILE DEBUG

去除函数DAY的调试信息,执行
sql>
ALTER FUNCTION DAY COMPILE。

查看某对象是否处于调试状态:

sql>SELECT DEBUGINFO
  FROM SYS.ALL_PROBE_OBJECTS PO
 WHERE PO.OWNER = 'DBO'
   AND PO.OBJECT_NAME = 'DAY'
   AND PO.OBJECT_TYPE = 'FUNCTION';

2.TOAD  12对procedure调试(好像plsql块不能单独调试,有朋友知道怎么调试的可以给俺留言,以作补充)
    2.1步骤:
         1》打开“schema browser”-->2》进入“schema browser”-->3》打开procedure-->4》选中要调试的procedure-->5》打开“load in editor”   如下图所示:
       2》进入editor调试界面(注意:首先要编译compile)
3.PL/SQL DEVEPLORE调试
     3.1、调试步骤:
           1》进行编译compile
      2》点击“test”进入调试界面