有时候会突然发现存储过程无法进行单步调试
相信很多数据库开发人员都遇到过这种问题:
如下的存储过程,是无法单步调试的,直接点击调试按钮就进行执行了。
对应的对象在pl/sql developer中的信息如上,大家要注意Add debug information 的钩没有打上:
这个其实跟数据库的权限有关系:
select OWNER, OBJECT_NAME, OBJECT_TYPE, LAST_DDL_TIME, STATUS, DEBUGINFO
from sys.all_probe_objects
where owner = 'DATASYNC_1'
and object_name = 'P_ODS_OS_USER_BEHA_MONTH'
请注意DEBUGINFO的查询结果为F
在这种状态下对此存储过程是无法单步调试的。解决办法在pl/sql developer中勾选“Add debug information”即可,但要注意勾选实际上执行的语句是“ALTER PROCEDURE OSS01.P_KILLJOB COMPILE DEBUG” .即对对应的对象实际上是执行了编译,这样引用对象将会失效,这在维护中需要注意。在执行此操作前,一定要检查引用对象情况,评估当前是否可以执行此操作。执行后立即检查是否有失效对象,如有立即编译。
勾选之后:
现在可以进行单步调试了。
现在可以进行单步调试了。
转自:http://blog.csdn.net/huangchao_sky/article/details/8507722 道道老师的博客