【问题标题】:Oracle audit trigger code used for multiple tables with different table names用于具有不同表名的多个表的 Oracle 审计触发器代码
【发布时间】:2014-11-12 01:25:40
【问题描述】:

只有当表有任何更新时,我才需要使用当前时间戳填充审计列。这是触发器。触发器工作正常

create or replace TRIGGER test.Audit_Trigger
BEFORE UPDATE  ON test.TEST_TABLE 
FOR EACH ROW
BEGIN
  :NEW.column_dtm := current_timestamp;
END;

除了为每个表添加相同的触发器(大约 1000 个表意味着 1000 个触发器)只更改表名之外,还有其他更好的方法来完成此任务吗?

【问题讨论】:

    标签: oracle triggers


    【解决方案1】:

    如果您可以编写一个模式级触发器来执行此操作,那就太好了,但不幸的是,Oracle 只支持 DDL 的模式级触发器,而不支持 DML。

    您可以使用动态 SQL 轻松地在每个表上生成触发器,但假设您的数据库版本相当新(我认为是 9i 或更高版本),更好的选择可能是与您的 DBA 讨论为表启用细粒度审计更新。

    https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_4007.htm

    【讨论】:

      猜你喜欢
      • 2018-10-24
      • 1970-01-01
      • 2014-03-07
      • 2014-04-19
      • 2021-09-05
      • 1970-01-01
      • 1970-01-01
      • 2016-07-27
      相关资源
      最近更新 更多