Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!

ORACLE PL_SQL编程 触发器 PDF 下载


分享到:
时间:2020-10-10 10:52来源:http://www.java1234.com 作者:转载  侵权举报
ORACLE PL_SQL编程 触发器 PDF 下载
失效链接处理
 
ORACLE PL_SQL编程 触发器 PDF 下载



 
本站整理下载:
提取码:s29q 
 
 
相关截图:
 
主要内容:

8.1 触发器类型
 触发器在数据库里以独立的对象存储,它与存储过程和函数不同的是,存储过程与函数需要
用户显示调用才执行,而触发器是由一个事件来启动运行。即触发器是当某个事件发生时自动
地隐式运行。并且,触发器不能接收参数。所以运行触发器就叫触发或点火(firing)。
ORACLE事件指的是对数据库的表进行的INSERT、UPDATE及DELETE操作或对视图进行类
似的操作。ORACLE将触发器的功能扩展到了触发ORACLE,如数据库的启动与关闭等。所以
触发器常用来完成由数据库的完整性约束难以完成的复杂业务规则的约束,或用来监视对数据
库的各种操作,实现审计的功能。
8.1.1 DML触发器
 ORACLE可以在DML语句进行触发,可以在DML操作前或操作后进行触发,并且可以对每个
行或语句操作上进行触发。
8.1.2替代触发器
 由于在ORACLE里,不能直接对由两个以上的表建立的视图进行操作。所以给出了替代触发
器。它就是ORACLE 8专门为进行视图操作的一种处理方法。
8.1.3系统触发器
ORACLE 8i 提供了第三种类型的触发器叫系统触发器。它可以在ORACLE数据库系统的事件
中进行触发,如ORACLE系统的启动与关闭等。
触发器组成: 
l 触发事件:引起触发器被触发的事件。 例如:DML语句(INSERT, UPDATE, 
DELETE语句对表或视图执行数据处理操作)、DDL语句(如CREATE、ALTER、DROP语
句在数据库中创建、修改、删除模式对象)、数据库系统事件(如系统启动或退出、异常
错误)、用户事件(如登录或退出数据库)。
l 触发时间:即该TRIGGER 是在触发事件发生之前(BEFORE)还是之后(AFTER)触
发,也就是触发事件和该TRIGGER 的操作顺序。
l 触发操作:即该TRIGGER 被触发之后的目的和意图,正是触发器本身要做的事情。
例如:PL/SQL 块。
l 触发对象:包括表、视图、模式、数据库。只有在这些对象上发生了符合触发条件的
访问:
昵称:海南.胡勇
园龄:1年5个月
荣誉:推荐博客
粉丝:348
关注:49
+加关注
< 2011年4月> 日 一 二 三 四 五 六
27 28 29 30 31 1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
1 2 3 4 5 6 7
搜索
常用链接
● 我的随笔
● 我的评论
http://www.cnblogs.com/huyong/archive/2011/04/27/2030466.html(第 2/41 页)2012-03-02 17:52:50
ORACLE PL/SQL编程之八:把触发器说透 - 海南.胡勇 - 博客园
触发事件,才会执行触发操作。
l 触发条件:由WHEN子句指定一个逻辑表达式。只有当该表达式的值为TRUE时,遇
到触发事件才会自动执行触发器,使其执行触发操作。
l 触发频率:说明触发器内定义的动作被执行的次数。即语句级(STATEMENT)触发器
和行级(ROW)触发器。
语句级(STATEMENT)触发器:是指当某触发事件发生时,该触发器只执行一次;
行级(ROW)触发器:是指当某触发事件发生时,对受到该操作影响的每一行数据,触发器
都单独执行一次。
编写触发器时,需要注意以下几点:
l 触发器不接受参数。
l 一个表上最多可有12个触发器,但同一时间、同一事件、同一类型的触发器只能
有一个。并各触发器之间不能有矛盾。
l 在一个表上的触发器越多,对在该表上的DML操作的性能影响就越大。
l 触发器最大为32KB。若确实需要,可以先建立过程,然后在触发器中用
CALL语句进行调用。
l 在触发器的执行部分只能用DML语句(SELECT、INSERT、UPDATE、
DELETE),不能使用DDL语句(CREATE、ALTER、DROP)。 l 触发器中不能包含事务控制语句(COMMIT,ROLLBACK,SAVEPOINT)。因为触
发器是触发语句的一部分,触发语句被提交、回退时,触发器也被提交、回退了。
l 在触发器主体中调用的任何过程、函数,都不能使用事务控制语句。
l 在触发器主体中不能申明任何Long和blob变量。新值new和旧值old也不能向表中
的任何long和blob列。
l 不同类型的触发器(如DML触发器、INSTEAD OF触发器、系统触发器)的语法格式
和作用有较大区别。
8.2 创建触发器
创建触发器的一般语法是:
CREATE [OR REPLACE] TRIGGER trigger_name 
{BEFORE | AFTER } 
{INSERT | DELETE | UPDATE [OF column [, column …]]} 
[OR {INSERT | DELETE | UPDATE [OF column [, column …]]}...] 
ON [schema.]table_name | [schema.]view_name 
[REFERENCING {OLD [AS] old | NEW [AS] new| PARENT as parent}] 
[FOR EACH ROW ]
[WHEN condition]
PL/SQL_BLOCK | CALL procedure_name;
复制代码
其中:
BEFORE 和AFTER指出触发器的触发时序分别为前触发和后触发方式,前触发是在执行触发
事件之前触发当前所创建的触发器,后触发是在执行触发事件之后触发当前所创建的触发器。
● 我的参与
● 最新评论
● 我的标签
我的标签
● Excel(20) 
● ORACLE(19) 
● 项目与团队管理(14) 
● 项目总结(12) 
● SQL SERVER(9)

 
 
------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐