重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
PL/SQL中为我们提供了【调试存储过程】的功能,可以帮助你完成存储过程的预编译与测试。
成都创新互联公司是一家专业提供蔡甸企业网站建设,专注与成都网站设计、成都网站制作、成都h5网站建设、小程序制作等业务。10年已为蔡甸众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。
点击要调试的存储过程,右键选择TEST
如果需要查看变量,当然调试都需要。在右键菜单中选择Add
debug
information.
start
debugger(F9)开始我们的测试,Run(Ctrl+R)
随时在varible
List中输入我们想查看的变量
其它:
Step
into(Ctrl+N):单步调试,进入下一步
Step
over(Ctrl+O):结束该语句
Step
out(Ctrl+T):跳出该过程
Run
to
next
exception:进入下一个断点Breakpoint
Toggle
Breakpoint设置断点:光标指向一行,Ctrl+B;或鼠标点中该行的行号边缘
======================================
1.在要调试的过程上单击
test
,如下图所示:
2.出现如下界面时单击最左上方的按钮,如下图所示:
3.单击后呈现如下画面:
其中:表示要停止test;表示要全部运行完这个过程。单击它后你就不能单步调试了。
单步调试。单击它后可以像在exlipse或者visal
stidio里面一样对程序进行单步调试了。
4.单击“单步调试”按钮。出现如下画面:
这个时候表示你进入了调试状态,你可以单击上面说的任何按钮来控制程序,如下:
表示要停止test,不再调试了;表示要全部运行完这个过程,不再进行单步调试了。
单步调试,表示要一步一步的调试这个程序要想单步调试这个程序,只需要你用鼠标左键连续单击这个按钮即可。
5.断点的使用。
可以使用断点,方法是在文本区域最左侧的边框进行左键单击,如下:
这个时候单击:这个按钮,就可以直接运行到这个位置了,示意图如下:
这个时候再单击,进行一步步的调试。
注意:当你忘记了设置断点,而进入一个非常大的循环时,没有关系,你可以打开这个过程在相应处设置断点,然后单击就可以了。步骤如下:
a.忘了设断点了,但是我进入了非常大的循环单步调试很难退出时:这个时候需要打开这个过程,如下:
b.你需要设置断点的地方左键单击即可,如下图:
c.单击就直接运行到你设置的这个断点的地方了。
5.对监控窗口的使用:
这个窗口可以把你要监视的变量进行显示,你把你需要监视的变量复制到这个窗口就可以了。这个窗口在调试界面的最下方,如下示:
这个sql_str
就是要被监视的对象。
6.继续单步调试:可以看到,这个变量被赋值了。如下图所示:
把它复制出来,在新建的slq
window里运行,就可以看到执行结果了。如下图所示:
7.分析每一步的执行结果。
8.继续单步运行,继续分析,直到知道为什么没有产生想要的结果为止。
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变量旁边的按钮).
今天在项目中遇到一个比较棘手的问题,需要用到触发器。在编写触发器和调试过程中遇到下列问题,在此记录一下:
由于之前写的触发器都能正常运行,就没有涉及到触发器的调试,今天发现触发器没起作用,需要调试,竟不知道在哪儿调试。在网上借鉴一些别人的经验(),记录一下。在PL/SQL中,触发器的调试方法如下:
1,选中要调试的触发器,右击,然后勾选 Add debug information,只有勾选这个按钮后,调试才能进入到断点。
2,选中触发器,点击 Edit,到Edit 界面,在要调试的行号前面单击,或者右键,添加断点。
3,在菜单的新建中选择“测试窗口”,打开一个如下块,在begin和end中间添加能触发触发器的语句
4,按F9或者点击调试菜单中的开始菜单,进入运行调试状态(后面的红框是单步进入)
5,点击运行图标跳到触发器中断点位置
6,鼠标放到变量上可以显示变量值。
7,如果有异常,就弹出相关异常信息。
调试的时候发现new对象的日期格式为中文,而后面又需要yyyy-mm-dd 的格式来作为查询条件。所以就在赋值的时候转换一下。
在select into 给变量赋值的时候,select 查询出来的集合为空,导致报错ORA-01403,解决方案就是将这一段用begin end 包裹起来,抛出改异常的时候给变量一个默认值。如下图: