Oracle存储过程及调用存储过程及调用
Oracle存储过程语法存储过程语法
Oracle的存储过程语法如下:
create procedure 存储过程名称(随便取)
is
在这里可以定义常量、变量、游标、复杂数据类型这里可以定义变量、常量
begin
执行部分
end;
(2)带参数的存储过程语法:
create procedure 存储过程名称(随便取) (变量1 数据类型,变量2 数据类型,...,变量n 数据类型)
is
在这里可以定义常量、变量、游标、复杂数据类型这里可以定义变量、常量
begin
执行部分
end;
(3)带输入、输出参数的存储过程语法:
create procedure 存储过程名称(随便取) (变量1 in(或out) 数据类型,变量2 in(或out) 数据类型,...,变量n in(或out) 数据类型)
is
在这里可以定义常量、变量、游标、复杂数据类型这里可以定义变量、常量
begin
执行部分
end;
注意:用上面的语法创建存储过程时可能会碰到数据库中已经有了同名的存储过程,这样Oracle就会弹框报错,说名字已被现
有对象使用。解决方法有两种:
方法一:换个存储过程名
方法二:在最开头的create procedure 之间加上 or replace 关键字,例如:create or replace procedure 存储过程名
称。但是这种方法不建议使用,因为这种方法会把之前同名的存储过程替换为你当前写的这个
存储过程案例一:没参数的存储过程存储过程案例一:没参数的存储过程
create replace procedure procedure_1
is
begin
dbms_output.put_line('procedure_1.......');
end;
存储过程案例二:带参数的的存储过程存储过程案例二:带参数的的存储过程
create procedure procedure_2(v_i number,v_j number)
is
v_m number(5);
begin
dbms_output.put_line('procedure_2.......');
v_m := v_i + v_j;
dbms_output.put_line(v_i||' + '||v_j||' = '||v_m);
end;
存储过程案例三:带输入、输出参数的存储过程存储过程案例三:带输入、输出参数的存储过程
存储过程的参数分为输入参数和输出参数,
输入参数:输入参数一般会在变量名和数据类型之间加in来表示该参数是输入参数
输出参数:输出参数一般会在变量名和数据类型之间加out来表示该变量是输出参数
不写in和out的话,默认为输入参数
create procedure procedure_3(v_i in number,v_j in number ,v_m out number)
is
begin