高级篇

继续上文的初级篇,聊一聊存储过程的常用特性,谈谈存储过程在工作中的具体使用,希望能对读者有所帮助。

参数传入模式

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;

输出结果如下图所示: