Bonjour à tous,

Dans une table d'un schema oracle, on souhaite modifier le champ description d'un objet (via un GUI). Seulement on constate que d'autres enregistrements de cette table utilisant la description de cet objet ne sont pas mis a jour automatiquement. D'ou l'idee d'utiliser un trigger. Le probleme tous ces enregistrements sont dans la meme table, du coup le trigger tente d'updater des champs de la table sur lequel il est defini, ce qui donne une erreur ORA-4091: table mutante ... Ci-dessous le code:

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
create or replace
TRIGGER un_trigger AFTER UPDATE OF DESCRIPTION ON La_table
FOR EACH ROW WHEN (NEW.type_id ='007')
DECLARE
cursor c_reqId is 
	SELECT distinct to_number(kr.parameter1) as reqId
	FROM table2 kr
	WHERE kr.relation='15'
	AND kr.source_id= :NEW.REQUEST_ID ;
 
BEGIN
        FOR cur in c_reqId LOOP
            update La_table kc set description= :NEW.DESCRIPTION where kc.request_id = cur.reqId ;
        END LOOP;
END;
Est-ce que l'un de vous aurait une solution ?