Oracle
 sql >> Base de données >  >> RDS >> Oracle

Oracle PL/SQL :Boucle sur les colonnes de déclenchement de manière dynamique

Non, vous ne pouvez pas référencer dynamiquement les valeurs :old et :new. Comme le suggère Shane, vous pouvez écrire du code pour générer le code de déclenchement statique, si cela vous facilite la vie. De plus, vous pouvez faire de "faire quelque chose ici" une procédure de package afin que votre déclencheur devienne :

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;

(Vous pouvez abandonner la clause REFERENCING inutile en passant).