欢迎来到天天文库
浏览记录
ID:59416093
大小:132.50 KB
页数:34页
时间:2020-09-19
《Oracle存储过程从入门到精通剖析ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Oracle存储过程基础培训目录1、我们为什么要用存储过程?2、存储过程是如何定义和维护的?3、我们如何调用存储过程?4、存储过程中常用的复合数据处理方式及CTE5、存储过程如何进行异常处理?6、存储过程如何进行事务处理?7、我们应如何优化存储过程?1、我们为什么要用存储过程?存储过程是指用于特定操作的PL/SQL块,是由流控制和SQL语句书写的过程。存储过程经编译和SQL优化后存储在数据库服务器中,使用时只要调用即可。在Oracle数据库中,若干个有联系的存储过程,可以组合在一起构成包。1、我们为什么要用存储过程?存储
2、过程具有如下特点:1)存储过程是预编译过的,并且经优化后存储于SQL内存中,使用时无需再次编译,提高了工作效率;2)存储过程的代码直接存放于数据库中,一般由客户端直接通过存储过程的名字进行调用,减少了网络流量,加快了系统执行速度,例如在进行百万以上的大批量数据查询时,使用存储过程分页要比其他方式分页快得多;3)使用存储过程可以减少SQL注入式攻击,提高了系统的安全性,执行存储过程的用户要具有一定的权限才能使用存储过程,没有数据操作权限的用户只能在其控制下间接地存取数据;1、我们为什么要用存储过程?4)在同时进行主、从表及
3、多表间的数据维护及有效性验证时,使用存储过程比较方便,而且可以有效利用SQL中的事务处理的机制;5)使用存储过程,可以实现存储过程设计和编码工作分开进行,只要将存储过程名、参数、及返回信息告诉编码人员即可;6)但使用存储过程封装业务逻辑将限制应用程序的可移植性;另外,如果更改存储过程的参数或者其返回的数据及类型的话,需要修改应用程序的相关代码,比较繁琐。2、存储过程是如何进行定义和维护的?存储过程的定义:CREATE[ORREPLACE]PROCEDUREprocedure_name[(parameter1[model
4、]datatype1,parameter2[model]datatype2...)]IS[AS]BEGINPL/SQLBlock;END[procedure_name];其中:procedure_name是存储过程的名字,parameter用于指定参数,model用于指定参数模式,datatype用于指定参数类型,IS[AS]用于开始PL/SQL代码块。注:当定义存储过程的参数时,只能指定数据类型,不能指定数据长度2、存储过程是如何进行定义和维护的?1)建立存储过程时,既可以指定存储过程的参数,也可以不提供任何参
5、数。2)存储过程的参数主要有三种类型:输入参数(IN)、输出参数(OUT)、输入输出参数(INOUT),其中IN用于接收调用环境的输入参数,OUT用于将输出数据传递到调用环境,INOUT不仅要接收数据,而且要输出数据到调用环境。3)在建立存储过程时,输入参数的IN可以省略。2、存储过程是如何进行定义和维护的?CREATEORREPLACEPROCEDUREUSP_OutTimeISBEGINDBMS_OUTPUT.PUT_LINE(SYSDATE);ENDUSP_OutTime;2、存储过程是如何进行定义和维护的?CRE
6、ATEORREPLACEPROCEDUREUSP_Learing(p_para1varchar2:='参数一',p_para2nvarchar2default'参数二',p_para3outvarchar2,p_para4inoutvarchar2)ISBEGINDECLAREv_para5varchar2(20);BEGINv_para5:='输入输出:'
7、
8、p_para4;p_para3:='输出:'
9、
10、p_para1
11、
12、p_para2;p_para4:=v_para5;END;ENDUSP_Learing;2、存储
13、过程是如何进行定义和维护的?存储过程的维护:1)删除存储过程DROPPROCEDUREprocedure_name;2)编译存储过程ALTERPROCEDUREprocedure_nameCOMPILE;3)与存储过程相关的几个查询--查看无效的存储过程SELECTobject_nameFROMUSER_OBJECTSWHERESTATUS='INVALID'ANDOBJECT_TYPE='PROCEDURE'--查看存储过程的代码SELECTTEXTFROMUSER_SOURCEWHERENAME=procedure_
14、name其中:procedure_name是存储过程的名字3、如何调用存储过程当在SQL*PLUS中调用存储过程时,需要使用CALL或EXECUTE命令,而在PL/SQL块中可以直接引用。当调用存储过程时,如果无参数,那么直接引用存储过程名;如果存储过程带有输入参数,那么需要为输入参数提供数据值;如果存储过程带有输出
此文档下载收益归作者所有