oracle存储过程的调试问题,

这段时间写了几个存储过程想调试一下,结果老是出问题,不能实现单步调试,一下子就执行完了,回来终于找到原因,是因为没有在存储过程里面事先增加debug信息,如图



以下是详细的步骤:

1.    打开PL/SQL Developer

如果在机器上安装了PL/SQL Developer的话,打开PL/SQL Developer界面

输入用户名,密码和host名字,这个跟在程序中web.config中配置的完全相同,点击确定

 

找到需要调试的存储过程所在的包(Package bodies),如PACK_ACTIVITY,点击右键,在弹出菜单中选择[查看],得到包中的所有存储过程和他们的代码.

 

2.    添加debug信息

为了能够单步跟踪存储过程,需要为其所在的包添加debug信息,右键点击需要调试的包,在弹出菜单中选中[添加调试信息].

这样就为包体添加了调试信息。

 

3.    调试存储过程

现在所有的准备工作都做好了,可以调试跟踪存储过程了。

选择需要调试的存储过程,点击右键,在弹出菜单中选择[测试],进去测试窗口.

测试窗口中有为了测试该存储过程自动所产生的代码,当然你也可以自己另外加入和修改代码,对于我们目前只是为了调试存储过程,自动生成的代码已经足够了。接着按照如下的步骤进行调试。

(1)添加存储过程所需要的参数,我们项目中的大多数存储过程都是需要参数的,参数可以在测试窗口右下部分输入。

如:GetPanNO_New需要一个输入参数v_employeeid,我们输入180,输出参数是mycursor,是查看结果的,不需要输入任何值。

 

(2)开始调试,点击[调试]菜单->[开始](或者按F9),就进去调试模式了,程序开始停在begin这一行.

 

(3)以后的调试过程跟我们熟悉的的调试过程就一样了:

运行(Ctrl+R)

单步进入(Ctrl+N)

单步跳过(Ctrl+O)

单步退出(Ctrl+T)

或者点击debug工具条上的按扭:

当按Ctrl+N进去存储过程的源代码中后

 

在这个窗口中可以查看过程中的变量值和堆栈。

 

(4)调试运行完了后,可以查看结果如下(点击mycursor变量旁边的按钮).

 

4.    Tip

 

令人比较郁闷的是我们项目中很多的存储过程都是一个SELECT语句,不管这个SELECT语句多么复杂(SELECT语句中有嵌套的子SELECT语句),它也只能作为一行代码,单步跟踪就没有什么意义了。在这种情况下,我们只能将子的SELECT语句提取出来,看看他的结果如何,具体操作如下:

Ÿ   你可以在调试的过程中,在任何你需要查看子SELECT语句的时候新建一个SQL窗口,然后将子SELECT语句的代码拷贝到这个SQL窗口中运行,查看子SELECT语句的运行结果(当然这个子SELECT语句也可以调试)。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值