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.1步骤:
1》打开“schema browser”-->2》进入“schema browser”-->3》打开procedure-->4》选中要调试的procedure-->5》打开“load in editor” 如下图所示:
3.1、调试步骤:
1》进行编译compile