故事是这样的……
在上周修复一个分目录统计的BUG,测试后OK本周一上线的,可是上线后数据一会儿正确一会儿错误,认真分析后发现新程序把数据入库后,一会又被“坏人”写入错误数据。
就这样一场找“坏人”的斗争就这样开始……
1. 创建跟踪记录日志表
create table RESULT
(
IP VARCHAR2(256),
MYDATE DATE,
TYPE VARCHAR2(20)
)
tablespace USERS
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
2. 创建insert跟踪触发器
create or replace trigger tri_insert
after insert on country
for each row
begin
DECLARE
v_user_identifier VARCHAR2(64);
BEGIN
SELECT SYS_CONTEXT('USERENV', 'OS_USER') || ':' ||
SYS_CONTEXT('USERENV', 'IP_ADDRESS')
INTO v_user_identifier
FROM DUAL;
insert into result (ip, mydate,type) values (v_user_identifier, sysdate,'INSERT');
END;
end TRI_INSERT;
3. 创建Delete跟踪触发器
create or replace trigger TRI_DELETE
after delete on country
for each row
begin
DECLARE
v_user_identifier VARCHAR2(64);
BEGIN
SELECT SYS_CONTEXT('USERENV', 'OS_USER') || ':' ||
SYS_CONTEXT('USERENV', 'IP_ADDRESS')
INTO v_user_identifier
FROM DUAL;
insert into result (ip, mydate,type) values (v_user_identifier, sysdate,'DEL');
END;
end TRI_DELETE;
4. 创建update跟踪触发器(省略)
5. 抓“坏人”
当Insert 、delete、update数据时,将会写操作记录,如下表所示:
1 heipark:192.168.1.61 2010/12/15 16:32:53 INSERT
2 heipark:192.168.1.61 2010/12/15 16:33:00 DEL
至此,“坏人”落网。阿弥陀佛~~
参考文章:http://cyr1974.itpub.net/post/2066/278990
分享到:
相关推荐
调试oracle触发器文档,自己整理的,不懂的可以聊系我
基于Oracle触发器的数据实时同步的实现——在员工医疗保险系统中
1、行级触发器不支持 ...所以想要触发器对自身表数据做修该,则用行级触发器得到 :new 和 :old对象中的相关数据,然后将这样的数据保存到 package中,然后在语句级触发期中调用 package包中保存的数据,进行更新操作
oracle insert数据成功之后调用触发器,触发器调用存储过程,存储实时调用java http
Oracle 触发器 备份 表数据
个人亲测oracle触发器调用java程序
利用oracle 系统触发器防止用户使用drop table 或truncate table 命令。
oracle_触发器的种类和触发事件,很详细!
oracle数据库触发器实例 oracle数据库触发器实例 oracle数据库触发器实例 oracle数据库触发器实例 oracle数据库触发器实例 oracle数据库触发器实例 oracle数据库触发器实例 oracle数据库触发器实例
oracle触发器语法要点
触发器是一种特殊的存储过程,它在插入,删除或修改特定表中的数据时触发执行,它比数据库本身标准的功能有更精细和更复杂的数据控制能力。数据库触发器有以下的作用:
介绍数据库触发器的PPT。内容包括:存储过程的创建与使用;存储过程的查看、编辑和删除;触发器的创建与使用;触发器的查看、编辑、重命名和删除
ORACLE触发器、内置程序包教学.doc )
Oracle数据库分区和压缩技术应用——让Oracle跑得更快.pdf
oracle触发器功能介绍内附具体说明和简单介绍
Oracle触发器的概念和类型
oracle 触发器 调用 存储过程 Oracle自治事务(Autonomous Transaction)
Oracle触发器与存储过程高级编程Oracle触发器与存储过程高级编程
oracle触发器执行顺序.pdf
Oracle触发器语法