Oracle数据库中,有些情况下,对数据记录需要记录日志,或保存操作历史等情况.在此我们可以借助“数据库Trigger”进行。下面以一例进行说明:
CREATE OR REPLACE TRIGGER aits_auth_group_auth_trga_diu
AFTER update OR DELETE OR INSERT on aits_authority_group_auth
for each row
/*****************************************************************************************
*
* Trigger Name : aits_auth_group_auth_trga_diu
* Description : Log insert, Modify ,delete action to History table
* Version : 1.0
*****************************************************************************************/
declare
BEGIN
IF inserting THEN
INSERT INTO aits_auth_group_auth_history
(application_code, auth_id, ranage_code,
group_code, module_code, function_code,
creation_date, created_by, last_update_date,
last_updated_by, action_type)
VALUES
(:new.application_code, :new.auth_id, :new.ranage_code,
:new.group_code, :new.module_code, :new.function_code,
:new.creation_date, :new.created_by, :new.last_update_date,
:new.last_updated_by, aits_pak_common.InsertDesc);
ELSIF DELETING THEN
INSERT INTO aits_auth_group_auth_history
(application_code, auth_id, ranage_code,
group_code, module_code, function_code,
creation_date, created_by, last_update_date,
last_updated_by, action_type)
VALUES
(:OLD.application_code, :OLD.auth_id, :OLD.ranage_code,
:OLD.group_code, :OLD.module_code, :OLD.function_code,
:OLD.creation_date, :OLD.created_by, :OLD.last_update_date,
:OLD.last_updated_by, aits_pak_common.DeleteDesc);
ELSIF UPDATING THEN
IF UPDATING('application_code') OR UPDATING('auth_id') OR UPDATING('ranage_code')
OR UPDATING('group_code') OR UPDATING('module_code') OR UPDATING('function_code') THEN
INSERT INTO aits_auth_group_auth_history
(application_code, auth_id, ranage_code,
group_code, module_code, function_code,
creation_date, created_by, last_update_date,
last_updated_by, action_type)
VALUES
(:new.application_code, :new.auth_id, :new.ranage_code,
:new.group_code, :new.module_code, :new.function_code,
:new.creation_date, :new.created_by, :new.last_update_date,
:new.last_updated_by, aits_pak_common.UpdateDesc);
END IF;
END IF;
end aits_auth_group_auth_trga_diu;
分享到:
相关推荐
Oracle Table大全 Form Trigger大全
oracleform常用Trigger的触发时机.pdf
在oracle中利用函数实现计算公式解析|在oracle中利用函数实现计算公式解析
本文介绍了oracle触发器的概念和类型,create or replace trigger bj_customer before update on customer for each row begin update order set cu_no=:new.cu_no, cu_name=:new.cu_name, ...
oracle触发器(trigger).pdf
Oracle_Trigger_及_Oracle_常见问题解决方法 Oracle_Trigger_及_Oracle_常见问题解决方法
上传两本Oracle的trigger的学习资料(本人的学习参考书)。...详解Oracle中的trigger(中文版,PDF格式),包括DML触发器,替代触发器,系统触发器以及变异表等,含代码。 确实是本Oracle trigger的好书。 这是第一本。
oracle触发器(trigger)[定义].pdf
通过EXP/IMP可以实现产品系统的跨平台的迁移,需要迁移的数据库已经部署了高级复制环境,打算进行一系列的测试,测试包含高级复制环境数据库在通过 EXP/IMP工具迁移到新的环境中,复制环境是否生效。文中通过实例...
每当一个特定的数据操作语句(insert update delete)在指定的表上发出时,Oracle自动执行触发器中定义的语句序列。 举个简单的例子: 当员工表中新增一条记录后,自动打印“成功插入新员工” create or replace ...
oracle中利用sqluldr2导出
从Oracle8i开始,Oracle引入了特殊的触发器,这些触发器并不是和特殊的DML事件相关联的(DML事件,如,INSERT,UPDATE和DELETE)。这些系统级别的触发器包括数据库启动触发器,DDL触发器和最终用户登陆/注销触发器。...
NULL 博文链接:https://duqiangcise.iteye.com/blog/749438
提供一个Oracle中的触发器实例,供初学者学习触发器的原理及语法。
在ORACLE中利用猜解出的表和字段得出记录 实验环境请自行搭建
Oracle中使用锁进行并发控制
这是本人为公司ERP开发人员做的trigger报告,内容全面,并比较深入,有图例说明解释,以及一些流程图例等,是学习trigger的一个很好笔记。
oracle 工作流 指南 oracle 工作流 指南 oracle 工作流 指南