加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

【2】Oracle_存储过程

发布时间:2020-12-12 15:40:23 所属栏目:百科 来源:网络整理
导读:1、定义: 将提前编译好的一段plsql,存放到数据库段,供其他程序员调用 2、语法: create[orreplace]procedure过程名称(参数1in|out类型) as|is --声明一些变量 begin end; 3、案例: (1)声明无返回值pro_add_sal存储过程 作用:给指定员工涨100工资,

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; 运行结果:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读