Oracle的行级修订控制?
我正在寻找一个oracle包,它将捕获对表的更改并将其保存到日志或日志表中。例如,执行sql语句,例如Oracle的行级修订控制?,oracle,logging,revision,Oracle,Logging,Revision,我正在寻找一个oracle包,它将捕获对表的更改并将其保存到日志或日志表中。例如,执行sql语句,例如 insert into foo(x,y) values (12,34); 将这些操作捕获到适当的表中,例如: timestamp who operation column value --------- --- --------- ------ ----- 12-JAN-2012 13:22 MH inser
insert into foo(x,y) values (12,34);
将这些操作捕获到适当的表中,例如:
timestamp who operation column value
--------- --- --------- ------ -----
12-JAN-2012 13:22 MH insert x 12
12-JAN-2012 13:22 MH insert y 13
如果有基于此信息生成sql语句的工具,那就太好了。这可以通过在目标表上进行简单的插入操作来实现。也许是这样的:
CREATE OR REPLACE TRIGGER foo_audit
AFTER INSERT OR DELETE OR UPDATE ON foo
FOR EACH ROW
BEGIN
IF INSERTING THEN
...
ELSIF UPDATING THEN
...
ELSIF DELETING THEN
...
END IF;
END;
/
这种触发器的格式非常简单,您实际上可以通过编程生成它们 这可以使用细粒度审核来完成: 作为替代方案,您还可以为相关表启用闪回归档。然后可以在过去的任何时候查询表的内容。但这并不会告诉你是谁做了改变(以及是如何做的)