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

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

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Oracle数据库系统应用开发实用教程电子课件 第8章 存储过程函数程序包与触发器

任务分解 任务1:通过过程统计不同部门的员工人数。 任务2:通过过程查询雇员信息。 任务3:通过函数查询雇员信息。 任务4:使用程序包。 任务5:通过触发器进行安全性检查。 任务6:通过触发器跟踪修改雇员信息的行为。 任务7:通过触发器为主键生成自增序列号。 任务8:通过触发器在视图中插入数据。 任务9:通过触发器跟踪用户新建数据库行为。 任务10:通过触发器跟踪用户信息。 触发器作用 触发器比数据库本身标准的功能有更精细和更复杂的数据控制能力,主要用于维护那些通过创建表的声明约束不可能实现的复杂的完整性约束,并对特定事件进行监控、响应和审计等。 触发器示例体验 【例8.26】在emp表上建立触发器。在对emp表插入,更新,删除之前触发,目的是不允许在周末更改表。 触发器示例体验 触发器概述 触发器是关系数据库系统提供的一项技术,当特定对象上特定事件出现时,由系统自动触发执行的代码块。数据库触发器能够执行的功能包括以下几方面: ① 自动生成派生数据。 ② 实现复杂的数据完整性规则。 ③ 实施更复杂的安全性检查。 ④ 提供审计和日志记录。 ⑤ 启用复杂的业务逻辑。 规则说明 触发时间:指明触发器何时执行,取值有: {BEFORE|AFTER|INSTEAD OF} 触发事件:指明哪些数据库动作会触发此触发器,包括 {DML_EVENT |DDL_EVENT |DATABASE_EVENT}, 对象名:取值包括 {[TABLE|VIEW]|[SCHEMA.]|[DATABASE] } REFERENCING_CLAUSE:用来引用正在处于修改状态下表中对应行的数据。 FOR EACH ROW:触发器对表中的每一行执行一次,即为行级触发器。 WHEN子句代表触发器限制条件 触发器类型 Oracle具有不同类型的触发器,可以完成不同的任务,按照触发器的触发事件和触发对象的不同,触发器一般分为以下几种: ① DML触发器 ② INSTEAD OF触发器 ③ DDL触发器 ④ 系统触发器 DML触发器 建立在基本表上的触发器称为DML触发器。 DML触发器 BEFORE 触发器和AFTER 触发器。执行的顺序: BEFORE 触发器--约束检查--更新表--AFTER 触发器。 BEFORE 触发器是在约束之前执行的,通常用于: 设置或修改被更新或插入的列值。 检查复杂的安全规则,如限制时间等。 增强商业应用规则。 DML触发器 AFTER 触发器是在BEFORE 触发器、约束检查以及更新表后才执行的。一般用于: 用户信息的审计。 导出数据的生成,如果导出数据是存储到其他表中,而不是触发器所依赖的表,则使用AFTER;如果导出数据是存储到当前触发器依赖的表,则触发器必须定义成BEFORE 触发器。 远程数据的复制。 语句级触发器 触发器的语句中未使用FOR EACH ROW子句。 语句级触发器与INSERT、DELETE、UPDATE或者组合上进行关联。 语句触发器都只针对指定语句激活一次。 任务6 任务6 任务6 DML触发器有三个可用来确认执行何种操作的逻辑表达式。 任务6 任务6 任务6 行级触发器 行级触发器是指执行DML操作时,每操作一行触发器就执行一次。 行级触发器使用WHEN条件,用于控制触发器的执行。 WHEN子句的语法为:WHEN trigger_condition 说明:trigger_condition是逻辑表达式,该表达式将为每行求值。 :old和:new标识符 每行触发 【例8.29】重新修改【例8.28】触发器。 测试 任务7:为主键生成自增序列号 任务8 替代触发器是行级触发器。替代触发器用INSTEAD OF来规定,它执行一个替代操作来代替对视图的操作,对视图的操作最终会转换为基本表的操作。 问题:对视图view_emp_dept进行插入数据,结果报错。这种情况该如何解决?(视图view_emp_dept的数据来源于emp表的字段empno,ename,job,emp.deptno,条件是emp.deptno=dept.deptno) (1)创建视图 (2)对视图进行插入操作 (3)在视图创建INSTEAD OF触发器 (4)重新对视图进行插入操作 任务8 任务8 任务9 DDL触发器是建立在模式级操作上的触发器。激发DDL操作包括:CREATE、ALTER、DROP等。作用主要是防止DDL操作引起的破坏或提供相应的安全监控。 DDL触发器通过事件属性函数获得有关触发事件的信息。 任务9 【例8.32】 创建DDL触发器,审计记录用户所创建对象的信息 (1)创建审计

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档