[Oracle] variable :new dans les triggers
bonjour
lors d'un insert, je souhaite appeler une procedure dans le trigger
et passer la ligne insérée en argument de la procedure
la table ttest (id int, lib varchar, name varchar);
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| CREATE OR REPLACE PROCEDURE p (r IN ttest%ROWTYPE)
IS
BEGIN
DBMS_OUTPUT.put_line (r.lib);
END;
/
CREATE OR REPLACE TRIGGER SUN.ttest_insert
AFTER INSERT
ON ttest
REFERENCING NEW AS NEW
FOR EACH ROW
BEGIN
/*DBMS_OUTPUT.put_line (:NEW.lib);*/
p (:NEW);
END;
/
/ |
dans le cas présent, le trigger ne compile pas :
Citation:
PLS-00049: variable de lien erronée 'NEW'
donc, y a t il moyen de lasser le :new entier en param, et non tous les attribut un par un (:new.id, :new.lib, :new.name) ???? (si oui comment?)
l'exemple est bien entendu très simplifié, on résound le problème en collant le code de la procedure dans le trigger,
mais j'utilise des procedures notamment pour mutualiser un peu de code, et que ça fait plus propre
merci
++