Oracle
 sql >> Database >  >> RDS >> Oracle

Oracle PL/SQL:colonne di attivazione loop over in modo dinamico

No, non puoi fare riferimento a :old e :new valori in modo dinamico. Come suggerisce Shane, puoi scrivere codice per generare il codice trigger statico, se ciò semplifica la vita. Inoltre, puoi trasformare "fai qualcosa qui" in una procedura del pacchetto in modo che il tuo trigger diventi:

CREATE OR REPLACE TRIGGER JOSH.TEST#UPD BEFORE 
UPDATE ON JOSH.TEST_TRIGGER_TABLE
begin    
   my_package.do_something_with (:old.col1, :new.col1);
   my_package.do_something_with (:old.col2, :new.col2);
   my_package.do_something_with (:old.col3, :new.col3);
   -- etc.
end;

(A proposito, puoi abbandonare l'inutile clausola REFERENCEING).