【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; 运行结果: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- vb.net窗体继承(机房重构知识点总结)
- 文档格式转换软件Print2Flash使用教程:超链接
- oracle分析函数over partition by 和group by的区别
- Cocos2d-x_Win7_Eclipse_Android使用学习
- 关于如何去掉fragment_main.xml文件
- ruby-on-rails-3 – Rails 3嵌套资源路由问题为form_for
- c# – 当我需要为所有表单重载方法时如何保持DRY?
- atitit.XML类库选型及object 对象bean 跟json转换方案
- .net – 示例开源WPF触摸应用程序?
- oracle – PL / SQL异常处理:do nothing(忽略异常)