精通Oracle触发器分类及应用(oracle触发器类型)

Oracle触发器(Triggers)是在特定的时间或特定事件发生时自动执行一个或多个SQL语句的计算机程序集。它可以替代程序员在某个特定的程序中实现自定义的行为和处理。它们同样可以被称为事件处理程序。Oracle触发器的用处有很多,它在数据库中起到自动更新、校验和审计作用,更常用来制定逻辑规程对业务操作进行控制,常见触发器分类如下:

1. 表触发器(表级触发器):在更新,插入和删除表行时执行操作,表触发器有四种:INSERT、DELETE、UPDATE、INSERT OR UPDATE三种。

2. 语句触发器:它的触发范围是一个SQL语句,在编译、执行和终止时被触发,是触发情况最多的触发器类型。

3. 集成触发器:它是一种可以在多个表、或者多个语句上触发外部程序和数据库函数的触发器。

4. 登录触发器:它是在用户登录数据库时被触发的一种触发器,用于项目上网时、过程上网时、资源使用限制以及登录时校验数据库字符集类型等等。

5. 相应触发器:它是特殊的用于处理DML和DDL操作的另一种触发器,它执行反应FRM操作,在客户端处理操作时,采用用户所定义的脚本中的响应函数。

虽然Oracle触发器有很多用途,但最常用的应用包括记录表操作、发送邮件通知、自动将数据设置为特定值,记录日志、自动更新视图、过滤数据等。要想真正掌握Oracle触发器的机制,以及熟悉在不同类型的应用场景中使用他们,那么需要勤动脑筋,把一些表触发器的声明和使用代码构建出来。以下是一个简单的Oracle触发器的例子,它将允许系统每当记录被更新时,自动在另一个表中记录被更新的数据:

CREATE OR REPLACE TRIGGER tr_updatedata

AFTER UPDATE

ON the_data

FOR EACH ROW

BEGIN

INSERT INTO data_log

(original_data,updated_data,update_date)

VALUES

(:old.data, :new.data,SYSDATE);

END;

/


数据运维技术 » 精通Oracle触发器分类及应用(oracle触发器类型)