A partir d'un trigger faire une insert dans une autre table dont le nom est personnalisable
Bonjour
Je voudrais à partir d'un trigger insérer des données dans d'autres tables. Pour simplifier le code, je voudrais pouvoir utiliser une variable pour identifier la table avec un code du style
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
CREATE OR REPLACE TRIGGER matable_i
BEFORE INSERT ON matable FOR EACH ROW
DECLARE
table_name VARCHAR2(255 CHAR);
BEGIN
IF (:NEW.table = 1) THEN
table_name := 'table_1';
ELSE
table_name := 'table_2';
END IF;
INSERT INTO <table_name> (c1, c2) VALUES (:NEW.c1, :NEW.c2);
END; |
Je sais que je peux utiliser EXECUTE IMMEDIATE et avec des || générer la requête. Mais ça ne marche pas si l'un des champs est un blob par exemple, erreur avec message "column not allowed" quand le trigger s'active.
Si quelqu'un a une idée.
D'avance merci