在oracle中,存储过程测试有两种方式,一般都会现在存储过程执行完后,在左边列表找到对应存储过程右键测试;而利用sql代码进行测试的方式很少有人使用,所已当使用存储过程为接口时,就可以利用代码方式进行调用,以测试是否能够调通存储过程和是否存在错误(一般接口内容不对外公布),下面代码为利用sql代码调用存储过程示例:
declare
-- Local variables here
i integer;
type sys_cur is ref cursor; --定义游标类型
c_cur sys_cur; --定义游标记录类型
--定义接收后输出用的类型
type type_cur is record(
DEPARTNUM varchar2(20),
DEPARTNAME varchar2(20),
FHDEPARTNUM varchar2(20),
msg varchar2(20),
msgcode varchar2(20)
);
out_cur type_cur;
result VARCHAR2(2000):=''; --结果
begin
platform_depart(2,c_cur); ---参数说明:参数1是入参,参数2是出参
--open v_cur ;
LOOP --循环获取记录集 BEGIN
FETCH c_cur into out_cur; --将游标记录集合里面的记录循环赋值给out_cur,以便输出
IF c_cur%FOUND THEN --游标的FOUND属性判断是否有记录
--BEGIN
result:= out_cur.DEPARTNUM||';'||out_cur.DEPARTNAME||';'||out_cur.FHDEPARTNUM||';'||out_cur.msg||':'||out_cur.msgcode;
DBMS_OUTPUT.PUT_LINE(result);
--END;
ELSE
EXIT; --游标中的记录为空 退出
END IF; --结束IF语句
END LOOP; --循环获取记录集 END
end;