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 取值;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!