2012-05-16 5 views
0

Я хочу создать триггер на моем столе аудита функция триггера: он установит все значения NULL , которые имеют строку «нуль» означает 'null' -> NULL , как я должен это делать я хочу это для каждого столбца не является конкретным.Trigger для обновления значений

+4

Вместо того, чтобы постоянно вытирать пол, почему бы не исправить утечку? Почему бы не заставить пользователя/приложение вставить подлинный 'NULL'? –

+2

его через webservice, так что я не с его конца – Trikaldarshi

ответ

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 будет достаточно. В противном случае вы можете сгенерировать код из словаря данных.

Смежные вопросы