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

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

oracle存储过程的创建语法

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;

那么如何调用存储过程

declare num_C integer;

begin

--调用存储过程---

Proc_Test(3,4,3,num_C);

dbms_output.put_line('输出结果:'|| num_C );

end;

输出结果

img[/filehub/2021/01/14/ae0638c0-5b7d-4905-85f4-c5e1c1d80cee.png]

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

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;

输出结果

相关推荐

口袋动物园
365提款验证

口袋动物园

⌛ 07-13 👁️ 3383
《剑网3》唐门PVP惊羽诀配装及技能介绍经验分享
bet28365365娱乐场

《剑网3》唐门PVP惊羽诀配装及技能介绍经验分享

⌛ 12-02 👁️ 1993
神武进了蓬莱需要一艘船要多久才能出来?(神武进蓬莱出来要等多久)