三峡大学韩芳oracle存储过程函数触发器包.pptVIP

三峡大学韩芳oracle存储过程函数触发器包.ppt

  1. 1、本文档共46页,可阅读全部内容。
  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存储过程函数触发器包.ppt

* 10.4.1 触发器的类型 1.触发器类型 DML触发器:DML触发器由DML语句触发,例如INSERT、UPDATE和DELETE语句。 INSTEAD OF触发器:INSTEAD OF触发器又称替代触发器,用于执行一个替代操作来代替触发事件的操作。 系统事件触发器:系统事件触发器在发生如数据库启动或关闭等系统事件时触发。 DDL触发器:DDL触发器由DDL语句触发,例如CREATE、ALTER和DROP语句。DDL触发器同样可以分为BEFORE触发器与AFTER触发器。 10.4 触 发 器 2.触发时间 根据指定的事件和触发器执行的先后次序,触发器可以分为BEFORE型和AFTER型触发器。 如果在指定的事件(INSERT、UPDATE或者DELETE)之前执行触发器,这类触发器称为BEFORE触发器;若在指定的事件之后执行触发器,则称这类触发器为AFTER触发器。 3.触发级别 根据触发级别的不同,触发器可以分为行触发器和语句触发器 对于行触发器,受触发事件影响的每一行都将引发触发器的执行;而对于语句触发器,触发事件只触发一次,即使有若干行受触发事件的影响,也只执行一次触发操作。 * 10.4.2 创建触发器 创建触发器需要使用CREATE TRIGGER语句,其语法如下: CREATE [ OR REPLACE ] TRIGGER trigger_name [ BEFORE | AFTER | INSTEAD OF ] trigger_event { ON table_name | view_name | DATABASE } [ FOR EACH ROW ] [ ENABLE | DISABLE ] [ WHEN trigger_condition ] [ DECLARE declaration_statements ; ] BEGIN trigger_body ; END [ trigger_name ] ; 10.4.2 创建触发器 * 10.4.3 DML触发器 DML触发器由DML语句触发,其对应的trigger_event具体内容如下: { INSERT | DELETE | UPDATE [ OF column [ , ... ] ] } 关于DML触发器的说明如下: DML操作主要包括INSERT、DELETE和UPDATE操作,通常根据触发器所针对的具体事件将DML触发器分为INSERT触发器、UPDATE触发器和DELETE触发器。 可以将DML操作细化到列,即针对某列进行DML操作时激活触发器。 10.4.3 DML触发器 在Oracle系统中,每个触发器被DML操作触发时,会产生两个特殊的变量:OLD和:NEW,分别代表某数据记录行在修改前和修改后的值。 这两个变量都是系统变量,由Oracle系统管理,存储在内存中,不允许用户直接对其进行修改。:OLD和:NEW变量的结构总是与执行DML操作的表的结构相同。当触发器工作完成以后,这两个变量也随之消失。这两个变量的值是只读的,即用户不能向这两个变量写入内容,但可以引用变量中的数据 :OLD变量用于存储DELETE和UPDATE操作所影响的行的副本。当执行DELETE或UPDATE操作时,行从触发表中被删除,并传输到:OLD变量中。 :NEW变量用于存储INSERT和UPDATE操作所影响的行的副本。当执行INSERT或UPDATE操作时,新行被同时添加到:NEW变量和触发表中,:NEW变量中的行即为触发表中新行的副本。 10.4.3 DML触发器 10.4.3 DML触发器 【例2-3】实现eBuy电子商城系统的日志操作功能(语句级触发器)。 (1)创建语句级触发器的测试表(该语句应该在创建触发器的语句之前运行) CREATE TABLE SYSLOG( WHO VARCHAR2(30), OPER_DATE DATE); 该表用来保存对eBuy系统进行操作的日志。 (2)创建语句级触发器 CREATE OR REPLACE TRIGGER tr_DeleteUser AFTER DELETE ON Users BEGIN INSERT INTO SYSLOG(WHO,OPER_DATE) VALUES(USER,SYSDATE); END; 10.4.3 DML触发器 该触发器用来实现在Users表中删除一条记录时,在SYSLOG表中添加一条包含当前操作用户(USER表示当前用户)和当前操作日期(SYSDATE表示当前日期)的记录。 (3)测试触发器tr_DeleteUser 通过删除Users表中的一条记录(用户名称为“存储过程”)来测试触发器的功能。 DELETE FROM

文档评论(0)

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

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

1亿VIP精品文档

相关文档