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 @   Eric-Shen  阅读(58)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示