У меня вчера была такая же проблема.
Я хотел закодировать триггер, который срабатывал на каждом поле, кроме одного, в таблице было 103 столбца.
Первый код:
if (:OLD.col1<>:NEW.col1 or :OLD.col2<>:NEW.col2 or :OLD.col3<>:NEW.col3 ....)
Но у меня были некоторые проблемы с нулевыми значениями, поэтому я добавил:
if (NVL(:OLD.col1,0)<>NVL(:NEW.col1,0) or NVL(:OLD.col2,0)<>NVL(:NEW.col2,0) ....)
Но потом у меня возникли проблемы со столбцами DATE, это стало беспорядком ..
Я думаю, что лучшее решение - перечислить все столбцы, которые вы хотите проверить, в «OF»:
AFTER INSERT OR UPDATE of cOL1, col2, col3 ... colN ON table1
Это не было "элегантно", но ... оно работало идеально.