【2】Oracle_存储过程

前端之家收集整理的这篇文章主要介绍了【2】Oracle_存储过程前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1、定义:

将提前编译好的一段plsql,存放到数据库段,供其他程序员调用

2、语法:

create[orreplace]procedure过程名称(参数1in|out类型)
as|is
--声明一些变量
begin
end;

3、案例:

(1)声明无返回值pro_add_sal存储过程 作用:给指定员工涨100工资,并打印涨前和涨后工资

createorreplaceprocedurepro_add_sal(enoinnumber)
as
psalnumber;
begin
selectsalintopsalfromempwhereempno=eno;
dbms_output.put_line('涨前工资'||psal);
updateempsetsal=sal+100whereempno=eno;
commit;
'涨后工资'||(psal+100));
调用该存储过程:
pro_add_sal(7788);
end;


(2)声明有返回值pro_emp_sal存储过程 作用:查询指定员工的年薪

pro_emp_totalsal(enonumber,totalsalout)
as
begin
selectsal*12+nvl(comm,0)intototalsalwhereempno=eno;
end;
调用该存储过程:
declare
totalnumber;
begin
pro_emp_totalsal(7788,total);
dbms_output.put_line(total);
end;
说明:
一般来讲,存储过程没有返回值,但是我们可以利用out参数,在过程中实现返回多个值。

(3)声明输出参数为游标类型pro_emplist 作用:输入部门编号,将此部门下的所有员工信息输出

createorreplaceprocedurepro_emplist(dnonumberoutsys_refcursor)
as
begin
openemplistforselect*fromempwheredeptno=dno;
;

declare
emplistsys_refcursor;
pempemp%rowtype;
pro_emplist(10,emplist);
loop
fetchemplistintopemp;
exitwhenemplist%notfound;
dbms_output.put_line(pemp.empno||pemp.ename);
endloop;
closeemplist;
end;
运行结果:
原文链接:https://www.f2er.com/oracle/211607.html

猜你在找的Oracle相关文章