高级篇
继续上文的初级篇,聊一聊存储过程的常用特性,谈谈存储过程在工作中的具体使用,希望能对读者有所帮助。
参数传入模式
PL/SQL存储过程有三种传参模式in 、out、in out。默认情况下(即不写)为in模式
先来看看下面的存储过程:
--in 、out、 in out模式测试create or replace procedure proc_param_demo(p1 in number,p2 out number,p3 in out number) asbegin
dbms_output.put_line('测试in 模式存储过程中p1的值为:'||p1);--标准输出
dbms_output.put_line('测试out 模式存储过程中p2的值为:'||p2);
dbms_output.put_line('测试in out模式存储过程中p3的值为:'||p3); --p1 :=100; --报错
p2 := 100; --:=PL/SQL标准赋值
p3 :=100;end;调试完错误之后,调用上面的存储过程,这次调用我们不直接把值传递给存储过程的参数。所以需要使用declare关键字来声明变量,然后就可以在执行区域才可以使用这些变量:
declare --声明区域p1 number;
p2 number;
p3 number;begin
p1 := 10;
p2 := 10;
p3 := 10;
proc_param_demo(p1,p2,p3);
dbms_output.put_line('测试in 模式存储过程后p1的值为:'||p1);
dbms_output.put_line('测试out 模式存储过程后p2的值为:'||p2);
dbms_output.put_line('测试in out模式存储过程后p3的值为:'||p3);end;输出结果如下图所示: