---存储过程
---过程的创建
create or replace procedure p_test_1(参数) as
begin
procedure body;
end;
存储过程中参数的类型
IN:表示是一个输入参数,可以指定缺省值。如省略参数类型,则缺省为in类型
OUT:表示是一个输出参数
IN OUT:既可以作为一个输入参数,也可以作为一个输出参数来输出结果
---过程的执行
EXECUTE |CALL procedure_name [(argument_list)]
---创建一个过程,以JOB为参数,查询该JOB的最高工资、最低工资、平均工资。
create or replace procedure display_sal (ejob in emp.job%type) as
v_max emp.job%type;
v_min emp.job%type;
v_avg emp.job%type;
begin
select avg(sal) into v_avg from emp where job = ejob;
select max(sal) into v_max from emp where job = ejob;
select min(sal) into v_min from emp where job = ejob;
DBMS_OUTPUT.PUT_LINE('DEPT ' || ejob || ' avg sal:' || v_avg);
DBMS_OUTPUT.PUT_LINE('DEPT ' || ejob || ' max sal:' || v_max);
DBMS_OUTPUT.PUT_LINE('DEPT ' || ejob || ' min sal:' || v_min);
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('NOT FOUND RECORD!');
END display_sal;
COMMIT;
execute displace_sal('SALES');
存储过程参数的传递方式:
按位置传递:
实参按顺序将值传给形参
EXECUTE ED_EMP(7900,:t_name,:t_sal);
EXECUTE ED_EMP(8000,'TEST2',20);
按名字传递
EXECUTE ED_EMP(v_name=>'ABCDE',v_dept=>10,v_no=>8003);
混合传递
EXECUTE ED_EMP(8005,v_dept=>20,v_name=>'TEST5');
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30018455/viewspace-1399240/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/30018455/viewspace-1399240/
本文介绍了如何使用SQL创建存储过程,并演示了一个具体的例子——通过传递职位(JOB)参数查询最高工资、最低工资及平均工资。此外,还讲解了存储过程中参数的类型(IN, OUT, INOUT)以及参数传递的方式。

被折叠的 条评论
为什么被折叠?



