欢迎来到天天文库
浏览记录
ID:59139470
大小:124.00 KB
页数:21页
时间:2020-09-25
《oracel存储过程教程ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、存储过程、包、数据库触发器设计(Oracle9iProceduralOption)《Oracle9iPL/SQL程序设计》1存储过程与应用级存储过程的区别1.存储于数据库中2.文档存储在数据字典3.可以被应用、及开发工具调用4.可以被其他存储过程调用1.存储于Form应用中2.文档可以从应用中得到3.只可以由Form调用4.可以调用存储过程StorageProcedureFormProcedure2创建存储过程(CreateProcedure)CreateorReplaceProcedure过程名(变量数据类型)变量定义;Begin…End过程
2、名;过程体可以省略INOUTINOUTISAS缺省3创建函数(CreateFunction)CreateorReplaceFunction函数名(变量数据类型)变量定义;Begin…Return值;End函数名;可以省略INOUTINOUTISASReturn数据类型缺省4存储过程例外处理(EXCEPTION)在PL/SQL中,警告信息、出错信息、或返回信息统称为例外(Exception)。Oracle中有两种类型的例外。预定义的例外:是由PL/SQL运行过程中,系统自动产生的信息。用户自定义例外:是用户根据需要,自己定义使用的例外,执行时由用户自
3、己引起。Oracle预定义的常用例外:CURSOR_ALREADY_OPENVALUE_ERRORNO_DATA_FOUNDINVALID_NUMBERTOO_MANY_ROWSZERO_DIVIDEINVALID_CURSOR用户自定义例外用户定义的例外必须在DECLARE段中说明,在Begin段中用RAISE引起,在EXCEPTION段中使用。5SQL语句执行结果:在处理SQL时,这类消息所使用的SQL语句包括:INSERT,UPDATE,DELETE子句。执行结果属性:SQL%FOUNDSQL%NOTFOUNDSQL%ROWCOUNT
4、例外处理方法:Beginupdateempsetsal=1200whereempno=1234;ifSQL%NOTFOUNDtheninsertintoErrors(empno,sal)values(1234,1200);endif;End;存储过程例外处理(EXCEPTION)6存储过程例外处理(EXCEPTION)例外的使用DeclareBeginExceptionWhenNO_DATA_FOUNDTHEN…WhenCURSOR_ALREADY_OPENTHENWhenTOO_MANY_ROWSTHEN...…WhenOTHE
5、RSTHEN...END;例外段在Exception段中对返回信息一一作出响应7存储过程例外处理(EXCEPTION)用户定义例外的使用Declareout_of_rangeEXCEPTION;Begin…ifv_sal>MAX_SALthenRAISEout_of_range;endif;…ExceptionWhenNO_DATA_FOUNDTHEN…WhenCURSOR_ALREADY_OPENTHENWhenTOO_MANY_ROWSTHEN...Whenout_of_rangeTHEN...END;例外段在Declare
6、段定义在Begin段中引起在Exception段中使用8Package包的设计9创建包(CreatePackage)CreateorReplacePackage包名Procedure过程名();Function函数名()Return数据类型;变量定义;例外定义;光标定义;……;End包名;定义公共元素ISAS10创建包体(CreatePackageBody)CreateorReplacePackageBody包名Procedure过程定义;Procedure过程定义;Function函数定义;Function函数定义;……;End包名;ISAS11
7、创建包12创建包体1----定义过程13创建包体23----定义过程14包的调用15OracleDatabaseTrigger数据库触发器设计16数据库触发器作用防止非法的数据库操纵、维护数据库安全对数据库的操作进行审计,存储历史数据完成数据库初始化处理控制数据库的数据完整性进行相关数据的修改完成数据复制自动完成数据库统计计算限制数据库操作的时间、权限等,控制实体的安全性。17数据库触发器与存储过程比较:数据库触发器是在进行数据操纵时自动触发的,存储过程要通过程序调用。在数据库触发器中可以调用存储过程、函数。在触发器中禁止使用COMMIT、ROL
8、LBACK语句,存储过程中可以使用PL/SQL中可以使用的全部SQL语句。在触发器中不得间接调用含有COMMIT、RO
此文档下载收益归作者所有