Oracle的存储过程和自定义函1..docx

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Oracle的存储过程和自定义函数存储过程、存储函数数据库对象:表、视图、索引、序列、同义词存储过程:指存储在数据库中供所有用户程序调用的子程序叫存储过程、存储函数。创建和使用存储过程用create procedure命令建立存储过程和存储函数。语法:create [or replace] procedure 过程名(参数列表)ASPLSQL子程序体;第一个存储过程:打印Hello worldcreate or replace procedure sayhelloworldas--说明部分begin dbms_out.put_line(“Hello World”);end;/两种调用存储过程:exec sayhelloworld();beginsayhelloworld();sayhelloworld();end;/set serveroutput on:”打开输出开关”sqlplus scott/tiger@localhost:1521/orcl:“连接数据库”host cls带参数的存储过程举例:为指定的员工,涨100块钱的工资;并且打印涨前和涨后的薪水desc dbms_output程序包(desc查看命令,desc表示按“表排序字段名”倒序显示,不加desc,表示正序显示)参数是输入还是输出参数如何调用:beginraisesalay(7839);raisesalay(7566);commit;end;/如何调试存储过程不推介远程调试本地调试(虚拟机调试)调试必须有debug connect session和debug any procedure用户权限grant DEBUG CONNECT SESSION,DEBUG ANY PROCEDURE to scoot;存储函数函数(Function)为一命名的存储程序,可带参数,并返回以计算值。函数和过程的结构类似,但必须有一个RETURN子句,用于返回函数值。存储过程和存储函数的相同点:完成特定功能的程序存储过程和存储函数的区别:是否用return语句返回值(存储函数有)Eg:查询某个员工的年收入--存储函数:查询某个员工的年收入 create or or replace function queryempincom(eno in number)return numberas--定义变量保存员工的薪水和奖金psal emp.sal%type;pcomm m%type; begin--得到该员工的月薪和奖金select psal,comm into psal,pcomm from emp where empno=eno;--直接返回年收入return psal*12+pcomm;end;/远程调用可以,远程存储不可以调用方法:DECLAREENO NUMBER;v_Return NUMBER;BEGINENO:=7499;v_Return:=QUERYEMPINCOME(ENO=ENO);DBMS_OUTPUT.PUT_LINE(‘v_Return=’||v_Return);v_Return:=v_Return;--rollback;END;若果一个表达式中含有一个空值,那么这个表达式就为空。nvl(pcomm,0);遇空值将他变为0In和Out参数一般来讲,存储过程和存储函数的区别在于存储函数可以有一个返回值;而存储过程没有返回值。过程和函数都可以通过out指定一个或多个输出参数。我们可以利用out参数,在过程和函数中实现返回多个值。存储过程和存储函数都可以有out参数存储过程和存储函数都可以有多个out参数存储过程可以通过out参数来实现返回值什么时候用存储过程/存储函数?原则:—如果只有一个返回值,用存储函数;否则,就用存储过程。--out参数:查询某个员工姓名月薪和职位create or replace procedure queryempinform(eno in number,pename out varchar2,psal out number,pjob out varchar2)asbegin--得到该员工的姓名月薪和职位select ename,sal,empjob into pename,psal,pjob from emp where empno=eno;end;/ 概述在应用程序中访问存储过程和存储函数访问存储过程访问存储函数关于JUnit的使用请参看课程《JUnit——Java单元测试必备工具》也可以在类中使用main方法进行测试在Out参数中使用光标申明包结构包头:只负责申明Create or replace package mypackage asType empcursor is ref cursor;Procedure queryEmp

文档评论(0)

tiangou + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档