Oracle如何创建存储过程和调用

1|0oracle存储过程的创建语法

create or replace procedure 存储过程名称 ( --定义输入、输出参数-- 参数名1 in 参数类型, 参数名2 in 参数类型, 参数名3 in 参数类型, 参数名4 out 参数类型 ) as --定义变量-- --变量名 变量数据类型;如: -- numCount integer; begin --处理方法- end;

上面我们创建一个处理加、减、乘、除计算的函数,那么我们也可以建成存储过程

/***** ** 创建加、减、乘、除计算的存储过程 **输入参数: 数字1,数字2,计算类型 **输出参数: 数字3 *****/ create or replace procedure Proc_Test ( --定义输入、输出参数-- num_A in integer, num_B in integer, numType in integer, num_C out integer ) as --定义变量-- -- numCount integer; -- numStr varchar(20); begin --判断计算类型-- if numType=1 then num_C := num_A + num_B; elsif numType=2 then num_C := num_A - num_B; elsif numType=3 then num_C := num_A * num_B; elsif numType=4 then num_C := num_A / num_B; else --其它处理 dbms_output.put_line('其它处理'); end if; end;

2|0调用存储过程

declare num_C integer; begin --调用存储过程--- Proc_Test(3,4,3,num_C); dbms_output.put_line('输出结果:'|| num_C ); end;

输出结果

img

那么,如果我们要在存储过程调用函数,是怎么处理的呢?

create or replace procedure Proc_Test ( --定义输入、输出参数-- num_A in integer, num_B in integer, numType in integer, num_C out integer ) as --定义变量-- -- numStr varchar(20); begin /* --判断计算类型-- if numType=1 then num_C := num_A + num_B; elsif numType=2 then num_C := num_A - num_B; elsif numType=3 then num_C := num_A * num_B; elsif numType=4 then num_C := num_A / num_B; else --其它处理 dbms_output.put_line('其它处理'); end if;*/ --调用函数 并赋值到num_C num_C:=fun_Test(num_A,num_B,numType); end;

只要把处理过程放到函数中,存储过程调用函数就可以了

再次调用的结果

declare num_C integer; begin --调用存储过程--- Proc_Test(12,2,4,num_C); dbms_output.put_line('输出结果:'|| num_C ); end;

输出结果

img


__EOF__

本文作者咫尺是梦
本文链接https://www.cnblogs.com/satire/p/15776531.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   satire  阅读(492)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示