SQL存储过程—02—使用


 

我们知道,存储过程和存储函数的主要区别是存储函数可以有一个返回值,但是,存储过程可以通过输出参数的形式得到返回值,

现在,我们分别来介绍一下两个模块为实现返回值功能的 异同点:

存储函数:

create or replace function test_func(a in int, b in int) RETURN int as
declare 
    c int default 10;
    d int;
begin
    d := a+b+c;
    return d;
end;

 

declare 
   dd int;
begin
dd = test_func(1,1);
select dd;
end;

 

使用存储函数取值,就像我们使用c的函数、java的方法取值一样,很简单,定义一个变量dd,然后把返回值通过=赋值给dd即可;

 

 

存储过程:

create or replace procedure sysdba.test_proce(a in int, b in int,d out int) as
declare
    c int default 10;
begin   
    d:=a+b+c;
end;
/*重新定义一个语句块,在这个语句块中取存储过程输出参数d的值*/
declare aa
int DEFAULT 1; dd int; begin test_proce(aa,1,dd); select dd; end;

 

 这个存储过程取返回值就比较怪异了,我们要定义一个变量dd,并把这个变量dd作为实参传给输出参数d,最后,存储过程执行后,d的值自动输出给dd,然后select dd  取值;

 

posted @ 2021-02-01 21:24  Eric-Shen  阅读(55)  评论(0编辑  收藏  举报