网站大量收购独家精品文档,联系QQ:2885784924

第八章理论课触发器和内置程序包.pdfVIP

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

《Oracle 数据库应用 》理论课 触发器和内置程序包  本章技能目标  理解和应用触发器  了解内置程序包 1. 触发器 触发器是特定事件出现的时候,自动执行的代码块。类似于存储过程,触发器与存储过程的区 别在于:存储过程是由用户或应用程序显式调用的,而触发器是不能被直接调用的。  触发器可以用于加载Oracle 的默认功能,提供高度可定制的数据库,触发器能够执行的功 能有: 1、 允许/ 限制对表的修改 2、 自动生成派生列,比如自增字段 3、 强制数据一致性 4、 提供审计和日志记录 5、 防止无效的事务处理 6、 启用复杂的业务逻辑 触发器与特定的表或视图相关联,用于检查对表或视图所做的数据修改。无论正在执行操作的 用户身份如何,触发器都能够在它们执行操作时生效。当INSERT,DELETE ,UPADTE 等事件 发生在表或视图中时,就会激活触发器的代码。 用于创建触发器的语法为: CREATE [OR REPLACE] TRIGGER trigger_name AFTER | BEFORE | INSTEAD OF [INSERT] [[OR] UPDATE [OF column_list]] [[OR] DELETE] ON table_or_view_name [REFERENCING {OLD [AS] old / NEW [AS] new}] [FOR EACH ROW] [WHEN (condition)] pl/sql_block; 其中: 第8 章 触发器和内置程序包 before 和after :指在事件发生之前或之后激活触发器。 instead of :如果使用此子句,表示可以执行触发器代码来代替导致触发器调用的事件。 insert、delete 和update :指定构成触发器事件的数据操纵类型,update 还可以制定列的列表。 referencing :指定新行(即将更新)和旧行(更新前)的其他名称,默认为new 和old 。 table_or_view_name :指要创建触发器的表或视图的名称。 for each row:指定是否对受影响的每行都执行触发器,即行级触发器,如果不使用此子句,则 为语句级触发器。 when :限制执行触发器的条件,该条件可以包括新旧数据值得检查。 declareend :是一个标准的PL/SQL 块。 例1 演示如何在SCOTT 模式的EMP 表上创建触发器。 例1: CREATE OR REPLACE TRIGGER biu_emp_deptno BEFORE INSERT OR UPDATE OF deptno ON emp FOR EACH ROW WHEN (New.deptno 40) BEGIN :Nm := 0; END; / 提示:如果创建触发器时出现错误,请使用SHOW ERRORS 命令查看详细的错误信息。 1.1 触发器的组成部分 触发器由三部分组成:  触发器语句(事件)  定义激活触发器的 DML 事件和 DDL 事件  触发器限制  执行触发器的条件,该条件必须为真才能激活触发器  触发器操作(主体)  包含一些 SQL 语句和代码,它们在发出了触发器语句且触发限制的值为真时运 行  触发器语句 触发器语句是那些可以导致触发器的事件,即在表或视图上执行的INSERT ,DELETE ,UPADTE 之类的DML 语句,在模式对象上执行的DDL 语句或数据库事件。 在例1 触发器中,第2 行至第四行,如下代码所示,构成了触发器语句。 BEFORE INSERT OR UPDATE OF deptno ON emp FOR EACH ROW 这就是说,触发器会在这些事件之前隐式执行:当对EMP 表执行INSERT 语句时或对EMP 表 的deptno 列进行UPADTE 时。

文档评论(0)

woai118doc + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档