【发布时间】:2014-05-28 04:33:19
【问题描述】:
首先感谢您调查我的问题。那么现在我的问题。我正在制作一个触发器,以监听 UPDATES 在日志文件中写入哪些列已更改并写入该列的新/旧值。
例如有一个包含这些列的表:
[ID] [NAME] [AGE]
1 Me 18
如果我现在打电话:
UPDATE TABLE VALUES(1, 'Not Me', 19);
它应该记录:
[NAME], Me, Not Me
[AGE], 18, 19
首先,我想动态获取列名,以便我的触发器可以动态工作。那行得通,我最终将列名放在了一个变量中,例如:
x.column_name
我知道如何使用 :OLD / :NEW 但是我想不出办法
e.g. :OLD.Id
:OLD => x.column_name // where x.column_name would hold Id
我不太确定这是否根本不可能,或者我只是在 SQL 上遗漏了一些重要的东西。
提前感谢您的任何回答;)
【问题讨论】:
-
我认为可以使用 PL/SQL 来实现您的要求。查看 Zlatko Sirotic 在此论坛上的帖子:community.oracle.com/message/370167