oracle 存储过程与函数.ppt

oracle 存储过程与函数.ppt

ID:55829550

大小:271.50 KB

页数:24页

时间:2020-06-09

oracle 存储过程与函数.ppt_第1页
oracle 存储过程与函数.ppt_第2页
oracle 存储过程与函数.ppt_第3页
oracle 存储过程与函数.ppt_第4页
oracle 存储过程与函数.ppt_第5页
资源描述:

《oracle 存储过程与函数.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第十四章存储过程与函数第十三章存储过程与函数定义:过程(函数)是在服务器端运行的完成一定功能的一段pl/sql程序。优点:存储过程因为SQL语句已经预编绎过了,因此运行的速度比较快。存储过程可以接受参数、输出参数、返回单个或多个结果集以及返回值。可以向程序返回错误原因。存储过程运行比较稳定,不会有太多的错误。只要一次成功,以后都会按这个程序运行。第十三章存储过程与函数存储过程主要是在服务器上运行,减少对客户机的压力。存储过程可以包含程序流、逻辑以及对数据库的查询。同时可以实体封装和隐藏了数据逻辑。存储过程可以在单个存储过程中执行一系列SQL语句

2、。存储过程可以从自己的存储过程内引用其它存储过程,这可以简化一系列复杂语句。14.1存储过程创建过程语法:create[orreplace]procedureprocedure_name[(argment[{in

3、inout}]type,argment[{in

4、out

5、inout}]type{is

6、as}<类型.变量的说明>(注:不用declare语句)Begin<执行部分>exception<可选的异常处理说明>end;14.1存储过程这里的IN表示向存储过程传递参数,OUT表示从存储过程返回参数。而INOUT表示传递参数和返回参数;在存储过

7、程内的变量类型只能指定变量类型;不能指定长度;在AS或IS后声明要用到的变量名称和变量类型及长度;在AS或IS后声明变量不要加declare语句。14.1存储过程CREATEORREPLACEPROCEDUREModeTest(p_InParameterINNUMBER,p_OutParameterOUTNUMBER,p_InOutParameterINOUTNUMBER)ISv_LocalVariableNUMBER;14.1存储过程BEGINv_LocalVariable:=p_InParameter;--Legalp_InParamete

8、r:=7;--Illegalp_OutParameter:=7;--Legalv_LocalVariable:=p_outParameter;--Illegalv_LocalVariable:=p_InOutParameter;--Legalp_InOutParameter:=7;--LegalENDModeTest;/14.1存储过程使用过程存储过程建立完成后,只要通过授权,用户就可以在SQLPLUS、Oracle开发工具或第三方开发工具来调用运行。Oracle使用EXECUTE语句来实现对存储过程的调用。14.1存储过程开发存储过程步骤1、

9、编辑存储过程源码使用文字编辑处理软件编辑存储过程源码,要用类似WORD文字处理软件进行编辑时,要将源码存为文本格式。2、对存储过程程序进行解释在SQLPLUS或用调试工具将存储过程程序进行解释;如:SQL>startc:stat1.sql3、调试源码直到正确。在SQLPLUS下来调试主要用的方法是:使用SHOWERROR命令来提示源码的错误位置;使用user_errors数据字典来查看各存储过程的错误位置。14.1存储过程例1创建一个存储过程,完成给定的员工号以后,删除该员工。CREATEORREPLACEPROCEDUREDelEmp(p_

10、empnoINemp.empno%TYPE)ASNo_resultEXCEPTION;BEGINDELETEFROMempWHEREempno=p_empno;IFSQL%NOTFOUNDTHENRAISEno_result;ENDIF;DBMS_OUTPUT.PUT_LINE('编码为'

11、

12、p_empno

13、

14、'的员工已被除名!');14.1存储过程EXCEPTIONWHENno_resultTHENDBMS_OUTPUT.PUT_LINE('你需要的数据不存在!');WHENOTHERSTHENDBMS_OUTPUT.PUT_LINE('发生

15、其它错误!');END;14.1存储过程例2给指定的员工加薪。CREATEORREPLACEPROCEDUREmon_addsal(p_empnoinemp.empno%TYPE,p_addsalinemp.comm%TYPE)ASno_resultEXCEPTION;BEGINUPDATEempSETcomm=p_addsalWHEREempno=p_empno;IFSQL%NOTFOUNDTHENRAISEno_result;ENDIF;14.1存储过程DBMS_OUTPUT.PUT_LINE(p_empno

16、

17、'的本月加薪额度为'

18、

19、p_

20、addsal);EXCEPTIONWHENno_resultTHENDBMS_OUTPUT.PUT_LINE('该员工不存在!');WHENOTHER

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。