过程一般用于执行一个指定的操作,可以将常用的操作封装成一个过程。一般分为无参数的过程,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-组合传递
前面的实参必须使用按位置传递的方法,后面的则可以使用按名称传递的方法。
原文:http://www.cnblogs.com/wjn563/p/4075130.html