欢迎来到天天文库
浏览记录
ID:43922219
大小:202.50 KB
页数:19页
时间:2019-10-16
《ORACLE常用对象》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、本节根据Oracle的特点,介绍Oracle的一些对象,如存储过程、函数、触发器、包、序号生成器等。8.5.1存储过程8.5.2触发器8.5.3用户自定义函数8.5.4包8.5.5序号生成器8.5Oracle常用对象Oracle中的存储过程由SQL语句和一些控制流语句组成并封装起来,经编译和优化后存储在数据库服务器中,使用时只需调用。使用存储过程有如下优点:(1)存储过程功能全面、接口灵活。(2)可减少网络数据传输量。(3)可减少调用延迟,提高程序的执行效率。(4)可保证数据的安全性和完整性。(5)
2、可维护性好。8.5.1存储过程1.存储过程的建立CREATE[ORREPLACE]PROCEDUREprocedure_name[(argument[IN
3、OUT
4、INOUT]datatype[argument[IN
5、OUT
6、INOUT]datatype]…)]IS
7、AS[declaration_statements]BEGINExecutable_statements[EXCEPTIONexception-handler_statemebts]END[procedure_name];2.存储过程的
8、重新编译与删除(1)存储过程的重新编译虽然用CREATEORREPLACE命令可以重新编译存储过程,但还有一种方法不需要有源程序的拷贝就可重新编译存储过程,其命令格式为:ALTERPROCEDUREprocedure_nameCOMPILE;当存储过程引用的对象的某种方式发生改变时,这时Oracle不能确定其状态,存储过程被标记为无效,但使用该方法能很快解决问题。(2)存储过程的删除DROPPROCEDUREprocedure_name3.存储过程的调用(1)参数表示法名表示法:其格式如下:argu
9、ment_name=>argument_value参数的位置不需要与存储过程中参数的定义顺序一致。位置表示法:调用有参数的存储过程时,参数值的顺序与存储过程中参数定义的顺序应一致。(2)PL/SQL对象或匿名PL/SQL块调用在PL/SQL对象或匿名PL/SQL块调用存储过程与调用Oracle内部函数方法一致,其格式为:procedure_name(argument_name=>argument_value[,argument_name=>argument_value[,…]])或procedure
10、_name(argument_value1[,argument_value2[,…]])触发器是一种特殊类型的存储过程,主要用于维护数据库中的表。它有以下作用:(1)安全性(2)审计(3)实现复杂的数据完整性规则(4)实现复杂非标准的数据库的相关完整性规则8.5.2触发器1.触发器的建立CREATE[ORREPLACE]TRIGGERtrigger_nameBEFORE
11、AFTER
12、INSTEADOFDELETE
13、INSERT
14、UPDATE[OFcolumn[,column]…][ORDELETE
15、
16、INSERT
17、UPDATE[OFcolumn[,column]…]…ONtable_name[[REFERENCINGOLD[AS]old1
18、NEW[AS]new1]FOREACHROW
19、statement[WHENcondition]IS
20、AS[declaration_statements]BEGINExecutable_statements[EXCEPTIONexception-handler_statemebts]注意:(1)触发器中不能对与触发器定义所在表相关的表进行操作。(2)触发器中不能
21、使用COMMIT、ROLLBACK及与之相关的语句,如果触发器调用含有这类语句的存储过程也可能出现问题。(3)在建立触发器时应避免循环触发,即建立在表A上的触发器对表B进行某种操作,而建立在表B的触发器对表A进行同种操作。2.触发器的重新编译与删除(1)触发器的重新编译虽然用CREATEORREPLACE命令可以重新编译触发器,但还有一种方法不需要有源程序的拷贝就可重新编译触发器,其命令格式为:ALTERTRIGGERtrigger_nameCOMPILE;(2)触发器的删除如果一个创建的触发器不再
22、需要了,可使用下列命令删除:DROPTRIGGERtrigger_nameOracle虽然有许多内置函数,但这些函数并不能完全满足用户的要求。用户有时进行大量相同类型的计算,但没有Oracle内置函数可供使用。Oracle提供了用户自定义函数功能。用户自定义函数作为一个命名的程序单元,可带参数,并可返回一个计算值。利用函数可完成指定的任务并提高模块的可靠性、减少开发时间。8.5.3用户自定义函数1.函数的建立CREATE[ORREPLACE]FUNCTIONfunct
此文档下载收益归作者所有