Oracle PL / SQL: динамическое циклическое переключение по столбцам триггера

Внутри триггера я пытаюсь перебрать все столбцы таблицы и сравнить новые значения со старыми. Вот что у меня так далеко:

CREATE OR REPLACE TRIGGER "JOSH".TEST#UPD BEFORE 
UPDATE ON "JOSH"."TEST_TRIGGER_TABLE" REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW
declare    
   oldval varchar(2000);   
   newval varchar(2000);   
begin    
   for row in (SELECT column_name from user_tab_columns where table_name='TEST_TRIGGER_TABLE') loop  
     execute immediate 'select :old.'||row.column_name||' from dual'   into oldval;  
     execute immediate 'select :new.'||row.column_name||' from dual'   into newval;  
     --Do something here with the old and new values
   end loop;  
end;

Триггер компилируется, но когда триггер срабатывает, я получаю:

ORA-01008: не все переменные связаны

при первом выполнении немедленно, потому что он ожидает значение для:old. :old а также:new уже определены как часть триггера, но кажется, что немедленно выполнить не могут видеть эти переменные.

Есть ли способ динамически перебирать значения столбцов в триггере?

Ответы на вопрос(4)

Ваш ответ на вопрос