pl sql developer中如何调试存储过程以及调试包中创建的存储过程

学会使用PL/SQL Developer的调试功能,对于编写复杂的存储过程,包,funtion...非常有帮助,所以今晚学习了一下:

(1)在body里设置断点(在要设置断点的行开始点击鼠标左键就可以)。

pl sql developer中如何调试存储过程以及调试包中创建的存储过程_第1张图片

(2)右键点击TEST.

 

pl sql developer中如何调试存储过程以及调试包中创建的存储过程_第2张图片

会出现如下TEST WINDOWS窗口

pl sql developer中如何调试存储过程以及调试包中创建的存储过程_第3张图片

在下面红圈中的位置value栏中输入参数值,因为varstr是输入参数,所在要输入一个值,但是io_cursor是输入输出参数,在此做为输出参数不预输入值

pl sql developer中如何调试存储过程以及调试包中创建的存储过程_第4张图片

(3) Debug-->Start.

pl sql developer中如何调试存储过程以及调试包中创建的存储过程_第5张图片

如果上面操作步骤中在debug——start不能点击是灰色的,则是因为未给此用户分配调的权限,

如果点击执行的话则pl/sql developer 调试存储过程报错

note:debugging requires the debug connect session system privilege.

原因是用户权限不够,使用以下命令授予权限:

用sysdba角色的用户名登录,使用如下命令

GRANT debug any procedure, debug connect session TO username

 

(4)点击红色框的按钮进行单步调试,自动会跳到存储过程体内。

pl sql developer中如何调试存储过程以及调试包中创建的存储过程_第6张图片

(5)把鼠标放到变量上可以显示出该变量的值,。

pl sql developer中如何调试存储过程以及调试包中创建的存储过程_第7张图片
也可以在变量外点击鼠标右链选择Add variable to Watches

pl sql developer中如何调试存储过程以及调试包中创建的存储过程_第8张图片

此时会在下图红圈中列出该变量的值

pl sql developer中如何调试存储过程以及调试包中创建的存储过程_第9张图片

点南上图红色粗线中的按钮,弹出如下对话框显示该变量值的详细信息

pl sql developer中如何调试存储过程以及调试包中创建的存储过程_第10张图片

下面是创建一个简单存储过程的例子

CREATE OR REPLACE PACKAGE u_pg_test   as
       TYPE t_cursor IS REF CURSOR ;
       Procedure u_sp_test(varStr varchar2, io_cursor IN OUT t_cursor);
END;

 

CREATE OR REPLACE PACKAGE BODY u_pg_test AS

Procedure u_sp_test(varStr varchar2, io_cursor IN OUT t_cursor) IS

    v_cursor t_cursor;
    varSql varchar2(666);

BEGIN
varSql:='Select * aa where ANAME='''||varStr||'''';

    OPEN v_cursor FOR varSql;

io_cursor := v_cursor;

END u_sp_test;

END u_pg_test;

你可能感兴趣的:(sql,windows)