Oracle Trigger:如何将OLD和NEW值作为JSON放入多个表中

时间:2017-12-06 10:03:43

标签: json database oracle triggers audit

我想知道是否可以在 Oracle 12g 中创建一个过程,该过程将在具有不同列的多个表上的触发器上进行更新时调用。 根据我的理解,我有两个值 OLD NEW 。我正在制作触发器更新后& FOR EACH ROW 。这是否可以将整行(变量:OLD :NEW )发送到某些函数,例如 JSON_OBJECT 等,它将解析行并生成输出可以存储在某个审计表中吗?

这种需求的主要原因是不要在每个触发器中保留自己的表列名列表。因为它不同,每个表结构的每个变化都会影响触发器。

或者我错了可以建议如何妥善解决这个问题?

对于测试用例,我有类似的东西:

AUDIT_TBL (ID, TABLE_NAME,OLD_JSON,NEW_JSON,DATE);
TABLE1 (ID,KEY,VALUE);
TABLE2 (ID,NAME,SURNAME,KEY);
TABLE3 (KEY,COLUMN1,CLOMUNT2,COLUMN3);

我计划触发 TABLE1 TABLE2 TABLE3 ,它会运行一些带参数为行的过程(: OLD :NEW ),会得到一个结果并将其放入 AUDIT_TBL

任何建议或想法如何正确而无血?

0 个答案:

没有答案