资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,单击此处编辑母版标题样式,第一级,第二级,*,数据库触发器和内置程序包,第九章,回顾,在上一章中,,我,我们讨论了:,子程序,程序包,2,目标,本章将讨论:,数据库触发器,内置程序包,3,数据库触发器10-1,数据库触发器,是,PL/SQL,块或存储过程,是在对关联表,执,执行,DML,操作时触发的,是隐式执行的,还可能具有声,明,明部分和异常,处,处理部分,4,数据库触发器10-2,触发器的组成,部,部分,触发器语句,触发器主体,触发器限制,5,数据库触发器10-3,触发器语句,指定触发器定,时,时、事件、表,名,名及类型,触发器主体,是,PL/SQL,块或对过程的,调,调用,触发器限制,可以通过,WHEN,子句实现,6,数据库触发器10-4,触发器的类型,应用程序触发,器,器,数据库触发器,7,数据库触发器10-5,应用程序触发,器,器,在应用程序内,发,发生特定,DML,事件时,将隐,式,式触发它,数据库触发器,在表、视图或,数,数据库上发生,特,特定,DML,事件时,将隐,式,式触发它,在表和视图上,定,定义,在数据库或方,案,案上,它也可,以,以充当系统,触,触发器,8,数据库触发器10-6,DML,触发器组件,触发器定时,触发器事件,表名,触发器类型,WHEN,子句,触发器主体,9,数据库触发器10-7,变异表,当前正由,DML,语句修改,声明删除级联,(,(引用完整性,约,约束条件)的,影,影响,约束表,对于,SQL,语句,触发语,句,句直接读取,对于声明的引,用,用完整性约束,条,条件,间接读,取,取,表的变异或约,束,束只是对会话,而,而言的,10,INSTEAD OF,触发器,是在视图上而,不,不是在表上定,义,义的,提供修改视图,的,的透明方法,可以针对视图,编,编写,INSERT,、,、UPDATE,及,DELETE,语句,它以不可见方,式,式在后台运行,执行在触发器,主,主体中编写的,操,操作,数据库触发器10-8,11,嵌套表上的,INSTEAD OF,触发器,不能使用,TABLE,子句直接修改,视,视图中的嵌套,列,列,通过,INSTEAD OF,触发器进行修,改,改,嵌套表上的触,发,发器因,DML,操作而触发,启用和禁用触,发,发器,语法如下:,altertrigger enable;,altertrigger disable;,其中,,Trigger_name,是触发器名称,。,。,数据库触发器10-9,12,删除触发器,使用以下语法,:,:,droptrigger ;,其中,,trigger_name,是触发器名称,。,。,查看有关触发,器,器的信息,使用下列数据,字,字典视图:,USER_TRIGGERS,ALL_TRIGGERS,DBA_TRIGGERS,数据库触发器10-10,13,扩展数据库的,功,功能,为,PL/SQL,提供对,SQL,功能的访问,用户,SYS,拥有所有程序,包,包,是公共同义词,可以由任何用,户,户访问,用户必须具有,EXECUTE,权限,才能访,问,问过程和函数,内置程序包6-1,14,其中的一些内,置,置程序包如下,:,:,内置程序包6-2,15,DBMS_STANDARD,提供语言工具,DBMS_ALERT,支持,数,数据,库,库事,件,件的,异,异步,通,通知,DBMS_OUTPUT,允许,显,显示,输,输出,结,结果,如果,禁,禁用,它,它,,则,则忽,略,略对,此,此程,序,序包,的,的调,用,用,DBMS_LOB,添加,用,用于,处,处理,大,大型,对,对象,的,的实,用,用过,程,程和,函,函数,内置,程,程序,包,包6-3,16,DBMS_OUTPUT,中的,一,一些,过,过程,Enable,Disable,Put,Put_line,New_line,Get_line,Get_lines,内置,程,程序,包,包6-4,17,DBMS_LOB,append,compare,copy,erase,fileclose,fileexists,filegetname,getlength,内置,程,程序,包,包6-5,18,Oracle9i,中新,增,增程,序,序包,的,的部,分,分列,表,表,内置,程,程序,包,包6-6,程序包名称,描述,DBMS_AQELM,提供过程管理,Advanced Queuing,异步通知的配置(通过电子邮件和,HTTP),。,DBMS_FGA,提供细粒度安全函数。,DBMS_FLASHBACK,可以闪回到指定时间的数据库版本。,DBMS_LDAP,提供从,LDAP,服务器访问数据的函数和过程。,DBMS_LibCache,通过从远程实例提取,SQL,和,PL/SQL,并在本地编译此,SQL(,但不执行),在,Oracle,实例上准备库高速缓存。,DBMS_LOGMNR_CDC_PUBLISH,准备捕获并发布一个或多个,Oracle,关系源表中的数据。,DBMS_LOGMNR_CDC_SUBSCRIBE,查看和查询使用,DBMS_LOGMNR_CDC_PUBLISH,程序包捕获并发布的更改数据。,DBMS_METADATA,从字典检索完整的数据库对象定义(元数据)。,DBMS_ODCI,根据用户函数的所用时间返回此函数的,CPU,成本。,19,数据,库,库触,发,发器,是,是,PL/SQL,块或,存,存储,过,过程,是在,对,对关,联,联表,执,执行,DML,操作,时,时触,发,发的,数据,库,库触,发,发器,的,的三,个,个组,成,成部,分,分是,:,:,触发,器,器语,句,句,触发,器,器主,体,体,触发,器,器限,制,制,总结3-1,20,触发,器,器的,类,类型,有,有:,应,应用,程,程序,触,触发,器,器和,数,数据,库,库触,发,发器,变异,表,表是,当,当前,正,正由,DML,语句,修,修改,的,的表,约束,表,表是,触,触发,语,语句,为,为,SQL,语句,直,直接,读,读取,的,的表,触发,INSTEADOF,触发器,,而,而不是,update、insert,或,delete,语句,可以启用,、,、禁用或,删,删除触发,器,器,总结3-2,21,Oracle,提供了许,多,多内置程,序,序包,它,们,们用于,扩展数据,库,库的功能,允许访问,SQL,功能,这,些,些功能在,PL/SQL,中通常是,受,受到限制,的,的,用户必须,具,具有程序,包,包的,EXECUTE,权限,才,能,能调用过,程,程和函数,总结3-3,22,
展开阅读全文