0

我想在我的表上创建一个触发器 审计触发器的功能是:它将所有值设置为 NULL 字符串“null”意味着'null' -> NULL 我应该如何做我希望它用于每一列而不是任何特定的。

4

1 回答 1

3

PL/SQL 中没有反射,所以你需要这样做:

create or replace trigger aud_upd_biur
before insert or update on your_audit_table
for each row
begin
     if :new.col1 = 'null'
     then
         :new.col1 := null;
     end if;
     if :new.col2 = 'null'
     then
         :new.col2 := null;
     end if;
     ....
     if :new.col99 = 'null'
     then
         :new.col99 := null;
     end if;
end;

因此,如果您的审计表只有几列 cut'n'paste 就足够了。否则,您可以从数据字典中生成代码。

于 2012-05-16T15:34:55.403 回答