Oracle数据库触发器类型简介(oracle触发器类型)

Oracle数据库中触发器是一种数据库对象,它会在满足某些特定的条件时自动的响应,并执行设定的任务。在Oracle数据库中有如下几种类型的触发器:

一、表级触发器

表级触发器是一种可以将其关联到指定表或视图上的触发器,它可以用来监控在这个表、视图上发生的Insert,update,delete等类型的操作,从而实现对这些数据操作的监控和处理。例如有下面一个表级触发器:

CREATE OR REPLACE TRIGGER trg_test

ON tab_stu

FOR INSERT

AS

BEGIN

INSERT INTO tab_log(oper_user,oper_time,oper_type)VALUES(user,sysdate,’insert’);

END;

上例中,trg_test触发器是定义在tab_stu表上的,并且只会响应插入操作,当在tab_stu表中插入数据时,它会把操作类型写到tab_log表中,这样就可以实现对这个表的操作的监控然后做出正确的应对。

二、语句级触发器

语句级触发器只不过与表级触发器不同的是,语句级触发器定义在当前用户的模式下,而且不关联任何表或视图,它用来监控全局的操作,当这些操作发生时,它会自动的响应,并执行设定的任务。例如:

CREATE OR REPLACE TRIGGER trg_test

AFTER SERVERERROR ON DATABASE

AS

BEGIN

INSERT INTO tab_log(oper_user,oper_time,oper_type) VALUES(user,sysdate,’serverError’);

END;

上例中,trg_test触发器是在数据库的模式下定义的,而且只会响应数据库服务器上发生的错误类型的事件,当数据库服务器发生错误时,它会把这个事件写入到tab_log表中,实现对数据库服务器发生错误的监控及处理。

总结

Oracle数据库中触发器有表级触发器和语句级触发器,表级触发器可以将其关联到指定表或视图上,用来监控表、视图上发生的Insert,update,delete等类型的操作。而语句级触发器是定义在当前用户的模式下的,它用来监控全局的操作,当这些操作发生时,它会自动的响应,并执行设定的任务。


数据运维技术 » Oracle数据库触发器类型简介(oracle触发器类型)