数据库审计表

bro*_*chb 2 java oracle audit

我有一个我正在使用的现有应用程序,并且客户已经为审计日志定义了他们想要的表结构.它包含以下列:

storeNo 
timeChanged
user 
tableChanged 
fieldChanged 
BeforeValue 
AfterValue
Run Code Online (Sandbox Code Playgroud)

通常我在每个表上都有简单的审计列,它们提供userChanged和timeChanged值.将写入这些表的应用程序是一个Java应用程序,并且通过jdbc在oracle数据库上进行调用.我的问题是获得前/后值的最佳方法是什么.我讨厌比较对象以查看填充此表的更改,这不会有效.如果一个更新中有多个列发生更改,则此新表将包含多个条目.或者有没有办法在oracle中这样做?过去其他人做了什么来跟踪变化而不是改变价值观?

ska*_*man 10

传统上这是oracle触发的内容.每次插入或更新都会触发一个存储过程,该存储过程可以访问"之前和之后"数据,您可以根据需要进行操作,例如将旧值记录到审计表中.它对应用程序是透明的.

http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:59412348055