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 : Sélectionner tout - Visualiser dans une fenêtre à part
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