oracle存储过程返回值

时间:2021-05-28 15:45:29

oracle的存储过程只要返回的值是指定的类型就行了

有的时候我们会看到这种写法的存储过程

create or replace function func_add(num1 in number,num2 in number)
return number is r number(3);
num3 number(3);
begin
num3:=num1+num2;
r:=num3;
return(r);
end;

开始一看似乎返回值的时候必须要返回r才对,实际上只是写法的问题我们可以修改上面存储过程的格式如下:

create or replace function func_add(num1 in number,num2 in number)
return number 

is 

r number(3);
num3 number(3);
begin
num3:=num1+num2;
r:=num3;
return(r);
end;

r和num3只是临时使用的变量而已,你可以返回它们也可以返回其他只要是num类型的值就可以。

如下:

create or replace function cc(i in number)

return number
is
i1 number;
i2 number;
i3 number;

begin

if i=1 then
i1:=i;
return i1;
elsif i=2 then
i2:=i;
return i2;
elsif i=3
i3:=i;

return i3;

else

return 0;

end if;


end;