调试功能的使用方法¶
调试器分为调试与全局调试两种:
- 调试:打开SQL交互工具,连接数据库,在当前的导航树上,右击存储过程或者函数等过程语言的节点,在弹出的菜单上单击并选择调试,会打开调试器窗口对其进行调试,无需第三方介入,结果和消息输出在调试器窗口内。
- 全局调试:在当前的导航树上,右击存储过程或者函数等过程语言的节点,在弹出的菜单上单击并选择全局调试,会打开全局调试器窗口,此时调试处于等待状态,当其他用户执行或者调用该存储过程或函数时,该过程语言被拦截调试,全局调试开始进行调试,直到全局调试结束,被调试函数才返回结果和消息。
示例:
CREATE OR REPLACE PROCEDURE pro2(a INT, b INT)
AS
i INT;
j INT;
sum INT;
BEGIN
i = a;
j = b;
sum = i+j;
DBMS_OUTPUT.PUT_LINE('sum='||sum);
END;
/
创建成功后右键该存储过程进行调试如图16-3
图16-3开始调试
当点击调试后弹出调试窗口,可以勾选使用缺省值列,如果没有缺省值,CHECKBOX不可勾选。全局调试不会有此弹窗。
图16-4调试
图16-5工具栏
如上图16-5所示
点击开始/继续开始调试(若是全局调试器无需点开始,自动开始调试)。
可以通过设置断点在你想要调试的行进行设置,设置好的断点会在堆栈窗口显示出来,再次点击继续按钮则调试会一直进行直到遇上断点会暂停下来,再次点击继续调试再次进行。
点击清除所有断点则当前调试窗口中的所有断点被清除。
图16-6调试窗口
点击下一步,可以逐行调试该程序。
如图16-5当执行SYSDBA.PRO2(A,B)时点击跳入则进入PRO2的过程中去,若该行没有任何过程可以跳入时,则自动跳至下一语句。
当跳入到该过程中,此时点击跳出可以直接跳出此过程,若该过程中有断点,即使点击跳出也会停在断点处。
当整个存储过程调试完毕后,如结果生成在输出窗口(全局调试结果生成在用户执行该过程的SQL交互窗口内)。
若调试过程中想终止调试,点击停止按钮调试终止,但不生成任何结果。
暂停功能,在程序执行中时间过长时,可以点击暂停按钮暂停调试,点击后会暂停到执行到的语句。
图16-7输出窗口