调试功能的使用方法

调试器分为调试与全局调试两种:

  • 调试:打开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

../../../../_images/image741.png

图16-3开始调试

当点击调试后弹出调试窗口,可以勾选使用缺省值列,如果没有缺省值,CHECKBOX不可勾选。全局调试不会有此弹窗。

../../../../_images/image752.png

图16-4调试

../../../../_images/image762.png

图16-5工具栏

如上图16-5所示

  1. 点击开始/继续开始调试(若是全局调试器无需点开始,自动开始调试)。

  2. 可以通过设置断点在你想要调试的行进行设置,设置好的断点会在堆栈窗口显示出来,再次点击继续按钮则调试会一直进行直到遇上断点会暂停下来,再次点击继续调试再次进行。

  3. 点击清除所有断点则当前调试窗口中的所有断点被清除。

    ../../../../_images/image772.png

图16-6调试窗口

  1. 点击下一步,可以逐行调试该程序。

  2. 如图16-5当执行SYSDBA.PRO2(A,B)时点击跳入则进入PRO2的过程中去,若该行没有任何过程可以跳入时,则自动跳至下一语句。

  3. 当跳入到该过程中,此时点击跳出可以直接跳出此过程,若该过程中有断点,即使点击跳出也会停在断点处。

  4. 当整个存储过程调试完毕后,如结果生成在输出窗口(全局调试结果生成在用户执行该过程的SQL交互窗口内)。

  5. 若调试过程中想终止调试,点击停止按钮调试终止,但不生成任何结果。

  6. 暂停功能,在程序执行中时间过长时,可以点击暂停按钮暂停调试,点击后会暂停到执行到的语句。

    ../../../../_images/image781.png

图16-7输出窗口