我想知道是否可以在 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 。
任何建议或想法如何正确而无血?