ImageVerifierCode 换一换
格式:PPT , 页数:56 ,大小:781.50KB ,
文档编号:3471401      下载积分:28 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-3471401.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(三亚风情)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(Oracle数据库系统应用开发实用教程电子课件-第8章-存储过程函数程序包与触发器-精选文档.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

Oracle数据库系统应用开发实用教程电子课件-第8章-存储过程函数程序包与触发器-精选文档.ppt

1、1第8章:子程序、程序包和触发器任务分解任务分解 q 任务1:通过过程统计不同部门的员工人数。q 任务2:通过过程查询雇员信息。q 任务3:通过函数查询雇员信息。q 任务4:使用程序包。q 任务5:通过触发器进行安全性检查。q 任务6:通过触发器跟踪修改雇员信息的行为。q 任务7:通过触发器为主键生成自增序列号。q 任务8:通过触发器在视图中插入数据。q 任务9:通过触发器跟踪用户新建数据库行为。q 任务10:通过触发器跟踪用户信息。3任务5 任务5.通过触发器进行安全性检查。触发器作用 触发器比数据库本身标准的功能有更精细和更复杂的数据控制能力,主要用于维护那些通过创建表的声明约束不可能实现

2、的复杂的完整性约束,并对特定事件进行监控、响应和审计等。触发器示例体验【例8.26】在emp表上建立触发器。在对emp表插入,更新,删除之前触发,目的是不允许在周末更改表。触发器示例体验触发器概述 触发器是关系数据库系统提供的一项技术,当特定对象上特定事件出现时,由系统自动触发执行的代码块。数据库触发器能够执行的功能包括以下几方面:自动生成派生数据。实现复杂的数据完整性规则。实施更复杂的安全性检查。提供审计和日志记录。启用复杂的业务逻辑。CREATE OR REPLACE TRIGGER 触发器名 触发时间 触发事件ON 对象名REFERENCING_CLAUSEFOR EACH ROW FO

3、R EACH ROWWHEN TRIGGER_CONDITION PL/SQL 语句 触发器的基本语法规则规则说明r触发时间:指明触发器何时执行,取值有:BEFORE|AFTER|INSTEAD OFr触发事件:指明哪些数据库动作会触发此触发器,包括DML_EVENT|DDL_EVENT|DATABASE_EVENT,r对象名:取值包括 TABLE|VIEW|SCHEMA.|DATABASE rREFERENCING_CLAUSE:用来引用正在处于修改状态下表中对应行的数据。rFOR EACH ROW:触发器对表中的每一行执行一次,即为行级触发器。rWHEN子句代表触发器限制条件触发器类型Or

4、acle具有不同类型的触发器,可以完成不同的任务,按照触发器的触发事件和触发对象的不同,触发器一般分为以下几种:DML触发器 INSTEAD OF触发器 DDL触发器 系统触发器DML触发器q建立在基本表上的触发器称为DML触发器。12DML触发器 q触发器时机q BEFORE 触发器q AFTER 触发器。q触发器所依赖的表对象不同q 语句级触发器 行级触发器 for each rowDML触发器qBEFORE 触发器和AFTER 触发器。执行的顺序:BEFORE 触发器-约束检查-更新表-AFTER 触发器。qBEFORE 触发器是在约束之前执行的,通常用于:q设置或修改被更新或插入的列值

5、。q检查复杂的安全规则,如限制时间等。增强商业应用规则。DML触发器qAFTER 触发器是在BEFORE 触发器、约束检查以及更新表后才执行的。一般用于:q用户信息的审计。q导出数据的生成,如果导出数据是存储到其他表中,而不是触发器所依赖的表,则使用AFTER;如果导出数据是存储到当前触发器依赖的表,则触发器必须定义成BEFORE 触发器。远程数据的复制。语句级触发器q触发器的语句中未使用FOR EACH ROW子句。q语句级触发器与INSERT、DELETE、UPDATE或者组合上进行关联。q语句触发器都只针对指定语句激活一次。实训5 掌握语句级触发器的原理。语句级触发器的编写方法。测试语句

6、级触发器是否生效。完成了任务完成了任务5,请尝试实训请尝试实训517任务6任务6.通过触发器跟踪修改雇员信息的行为任务6任务620任务6 思考:上面的例子中,只记录了操作的用户名和时间,如果需要记录下用户的动作,该如何解决?任务6qDML触发器有三个可用来确认执行何种操作的逻辑表达式。任务6或者任务6任务6实训6 掌握语句级触发器的原理。练习:建立一触发器,用于审计对HR用户的jobs表的操作行为。完成了任务完成了任务6,请尝试实训请尝试实训626任务7 任务7.通过行级触发器为主键生成自增序列号。27什么是行级触发器 进一步思考:上面的例子中,如何使触发器在执行过程中每行触发一次?工作情境:

7、工作情境:引入行级触发器。行级触发器q行级触发器是指执行DML操作时,每操作一行触发器就执行一次。q行级触发器使用WHEN条件,用于控制触发器的执行。qWHEN子句的语法为:WHEN trigger_condition 说明:trigger_condition是逻辑表达式,该表达式将为每行求值。:old和:new标识符q行级触发器中引入了:old和:new两个标识符 q:old和:new记录可以在trigger_condition内部引用,但不需使用冒号。该冒号只在触发器体内有效。每行触发q【例8.29】重新修改【例8.28】触发器。测试任务7:为主键生成自增序列号实训7 掌握行级触发器的原理

8、。行级触发器的编写方法。练习:创建一行级触发器,为学生信息表的主键生成自增序列号。完成了任务完成了任务7,请尝试实训请尝试实训734任务8 任务8.通过触发器在视图中插入数据。任务8q替代触发器是行级触发器。替代触发器用INSTEAD OF来规定,它执行一个替代操作来代替对视图的操作,对视图的操作最终会转换为基本表的操作。q问题:对视图view_emp_dept进行插入数据,结果报错。这种情况该如何解决?(视图view_emp_dept的数据来源于emp表的字段empno,ename,job,emp.deptno,条件是emp.deptno=dept.deptno)(1)创建视图(2)对视图进

9、行插入操作(3)在视图创建INSTEAD OF触发器(4)重新对视图进行插入操作任务8任务8实训8 掌握替代触发器的原理。创建替代触发器。替代触发器的测试方法。完成了任务完成了任务8,请尝试实训请尝试实训839任务9 任务9.通过触发器跟踪用户新建数据库对象的行为。任务9qDDL触发器是建立在模式级操作上的触发器。激发DDL操作包括:CREATE、ALTER、DROP等。作用主要是防止DDL操作引起的破坏或提供相应的安全监控。qDDL触发器通过事件属性函数获得有关触发事件的信息。任务9【例8.32】创建DDL触发器,审计记录用户所创建对象的信息(1)创建审计记录表(2)建立DDL触发器logc

10、reation(3)测试DDL触发器任务9实训9 掌握DDL触发器的原理。创建DDL触发器。DDL触发器的测试方法。完成了任务完成了任务9,请尝试实训请尝试实训944任务10 任务10.通过触发器跟踪用户登录信息。任务10q系统触发器是建立在数据库级别上的触发器,其触发事件包括服务器的启动或关闭,用户的登录或退出,以及服务器错误等。q创建系统触发器的语法:任务10qdatabase_event_list是一个或多个数据库事件,如下表:任务10例如:创建当数据库启动时的系统触发器结构如下:任务10q【例8.34】创建系统触发器,记录当次启动数据库以来登录的用户。(1)创建一个用户登录的日志记录表

11、(包含登录用户名、登录时间、数据库名字和实例号)(2)授予创建触发器的用户administer database trigger权限(注意:普通用户需具有此权限才能创建系统触发器)grant administer database trigger to scott;(3)创建系统启动的触发器(4)创建登录系统的触发器(5)测试任务10q系统触发器的数据库事件属性函数获得有关触发事件信息。任务10任务10r 总结:在本例中使用了两个系统触发器,分别为系统启动之后和登录之后触发(after startup和after logon),登录触发器用于记录用户登录日志,启动触发器用于删除历史登录日志,只

12、记录当此次登录情况。实训10 掌握DDL触发器的原理。创建DDL触发器。DDL触发器的测试方法。完成了任务完成了任务10,请尝试实训,请尝试实训10管理触发器1.激活和禁用触发器ALTER TRIGGER triggernameDISABLE|ENABLE;2.修改触发器 使用CREATE OR REPLACE TRIGGER语句直接修改触发器主体内容,如有同名触发器 3.重新编译触发器4.查看触发器的有关信息 ALTER TRIGGER trigger_name COMPILE;5.删除触发器DROP TRIGGER triggername;54作业请登录请登录gdit.edugdit.ed

13、u精品课程精品课程-20092009年国家级精品课程年国家级精品课程 大型数据库管理系统大型数据库管理系统 朱亚兴朱亚兴 计算机工程技术学院计算机工程技术学院 -网络课程网络课程-在线学习在线学习找到相应的找到相应的“学习情境学习情境”进行练习进行练习小结q过程、函数、程序包和触发器都是命名的PL/SQL块,具有模块化、可重用、易维护性和安全性强等优点。q过程能够完成一项或多项特定任务,具有3种类型参数,可以灵活地进行传入值和返回值。函数向调用程序返回一个值,或者借助于PL/SQL赋值语句或条件语句。过程或函数在首次执行时被存储到内存中,然后被其他模块调用。程序包是PL/SQL对象的集合。包括程序包规范和程序包体。q触发器是当满足特定事件时自动执行的存储过程。按照触发事件和触发对象的不同,触发器一般分为以下几种:DML触发器、替代触发器、DDL触发器和系统触发器。谢 谢!56

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|