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);
dans le cas présent, le trigger ne compile pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; / /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?)PLS-00049: variable de lien erronée 'NEW'
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
++
Partager