存储过程是没有返回值的,只是在参数列表中使用in,out类型参数来区分输入变量参数和输出参数,在sqlplus中,我们可以进行打印输出。
关于输出变量的类型,其实简单点可以是字符型,数字型,复杂点可以是结果集,任意自定义类型。
而函数必须有返回值,所以在这篇博客讲的存储过程返回值是针对输出参数的。
返回一个数字型
create or replace procedure hbk_out(result out number) is
begin
result:=100;
end;
调用我们可以如下
SQL> set serveroutput on
SQL> declare
2 abc number;
3 begin
4 hbk_out(abc);
5 dbms_output.put_line(abc);
6 end;
7 /
100
也可以使用sqlplus命令variable定义变量,然后使用print打印变量的值。(个人推荐的方法)
SQL> variable zll number;
SQL> execute hbk_out(:zll);
PL/SQL procedure successfully completed.
SQL> print zll;
ZLL
----------
100
存储过程返回一个结果集
同理,我们只需要让out参数的类型变成游标类型,更进一步,我们还可以自定义类型,如游标指针
定义包头
create