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:
Est-ce que l'un de vous aurait une solution ?
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;
Partager