Oracle调用带有out参数的存储过程
当我们在oracle中写完一个存储过程,我们通常需要使用测试调用存储过程,调用测试之后,然后提交执行结果,就可以去数据库中执行sql,查看我们的存储过程执行的数据是否符合预期效果。实际测试中,我们可能不希望直接提交数据,原因有如下两点:很多时候我们写的存储过程或多或少有些问题,数据也不正确,不希望直接提交一旦提交了,可能这条测试数据就被使用了,我们需要重新创造测试数据因此,如何通过sql调用存储过
当我们在oracle中写完一个存储过程,我们通常需要使用测试调用存储过程,调用测试之后,然后提交执行结果,就可以去数据库中执行sql,查看我们的存储过程执行的数据是否符合预期效果。
实际测试中,我们可能不希望直接提交数据,原因有如下两点:
- 很多时候我们写的存储过程或多或少有些问题,数据也不正确,不希望直接提交
- 一旦提交了,可能这条测试数据就被使用了,我们需要重新创造测试数据
因此,如何通过sql调用存储过程,然后不提交,接着执行我们的查询、或者执行其他存储过程,直到最后再提交或者回滚数据,可以提高我们开发完自测的效果,方便省事。
案例演示
案例一:调用不带有out参数的的存储过程(比较简单)
存储过程定义如下:
PROCEDURE P_TEST(V_PARAM_1 IN VARCHAR2, V_PARAM_2 IN VARCHAR2) IS
存储过程调用如下:
BEGIN
P_TEST(‘1’,‘2’);
END;
案例二:调用带有out参数的存储过程
存储过程定义如下
PROCEDURE P_TEST(V_PARAM_1 IN VARCHAR2, V_PARAM_2 IN VARCHAR2,V_RESULT OUT VARCHAR2) IS
存储过程调用如下:
BEGIN
DECLARE
V_RESULT VARCHAR2(32); --定义一个和返回结果相同的参数类型
BEGIN
P_TEST(‘1’, ‘1’, V_RESULT); --调用存储过程
DBMS_OUTPUT.PUT_LINE(V_RESULT); --把返回结果打印到输出区域
END;
END;
案例说明
如下图,可以先执行中间红色框框里的存储过程,然后可以看到上边的框框里,执行完成后是数据是没有提交的,可以下最下面的红色框里添加自己的查询代码,这个时候查询到的数据,包含了存储过程执行的结果,等自己测试完毕了,可以选择回滚数据,这样即使自己的存储过程写的有问题,也不会污染数据,修改后可以重复测试。
更多推荐
所有评论(0)