plsqlDev调试功能是利用包dbms_debug包实现的,
dbms_debug包的安装,以sys用户登录后运行: sql> @?/rdbms/admin/prvtpb.plb
在利用plsqlDevIDE做调试时,有时会发生失去响应,此时可执行alter system flush shared_pool试试,
如果还不行,建议改用TOAD来调试。plsqlDev在调试这一块做的不完善。
关于调试权限
Debug当前schema的过程,则必须给当前shema对应的用户授如下权限:
例如soctt要调试scott.myfunction
则以sys执行grant debug connect session to SCOTT;
Debug其它schema的过程,可以加debug any procedure 权限调试
或是
只针对单个被调试的过程授权 grant debug on “过程” to “调试用户”;
特别注意:
将存储过程编译成调试状态,才可以执行单步调试。
示例:将函数DAY编译成调试状态:
ALTER FUNCTION DAY COMPILE DEBUG
去除函数DAY的调试信息,执行ALTER FUNCTION DAY COMPILE。
查看某对象是否处于调试状态:
SELECT DEBUGINFO
FROM SYS.ALL_PROBE_OBJECTS PO
WHERE PO.OWNER = 'DBO'
AND PO.OBJECT_NAME = 'DAY'
AND PO.OBJECT_TYPE = 'FUNCTION';