Oracle_存储过程

过程一般用于执行一个指定的操作,可以将常用的操作封装成一个过程。一般分为无参数的过程,in 参数的存储过程,out的存储过程, inout 存储过程

1—创建in参数的存储过程,

create or replace  procedure pro_query_emp
(v_no in emp.empno%type)--在这个定义的时候标明 in
as
v_sal emp.empno%type;
begin
select sal into v_sal from emp where empno=v_no;
dbms_output.put_line('薪水为:'||v_sal);
exception 
when no_data_fount then
dbms_output.put_line('该员工不存在!');
end;

2—创建out参数的过程

create or relpace procedure pro_querysal_emp
(param_empno number,param_sal out varchar2)--定义out参数保存雇员薪水
as
begin
select sal into param_sal from emp where empno=param_empno;
exception
when no_data_found then
dbms_output.put_line('该员工不存在!');
end;

--调用out参数的过程
declare
v_empno EMP.empno%type;--定义变量存储员工的编号
v_sal emp.sal%type;--定义变量存储返回值
begin
v_empno:=&no;
pro_querysal_emp(v_empno,v_sal);
dbms_output.put_line('薪水是:'||v_sal);
end;

3—创建 in out参数过程

 create or  replace procedure proc_testinout

(param_num in out number)

as 

begin

param_number:=param_num*2;

end;

*过程的参数

1-按位置传递

按位置传递是指在掉用的时候按参数的排列顺序依次写出实参的名称。

2-按名称传递

关联符号“=>” exec proc_sum(num1=>1,num2=>2,num3=>3);

3-组合传递

前面的实参必须使用按位置传递的方法,后面的则可以使用按名称传递的方法。

原文地址:https://www.cnblogs.com/wjn563/p/4075130.html