Bonjour,
Je travaille sur un script qui me permettrai de créer des triggers automatiques sur certaines des tables de ma base.
Je voudrai un trigger before insert pour les tables voulues qui stocke dans une table (créée au préalable) la valeur de tous les champs de la ligne nouvellement créée.
je ne sais pas si je suis bien clair:
Ce trigger fonctionne: il me ramène dans VALEURS la liste des champs de ma ligne, séparées par des points virgules. C'est bien le résultat voulu.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
Mais je souhaite l'automatiser pour plusieurs tables, et je me vois mal écrire à la main la liste des champs de chaque table...
J'avais donc pensé à la requête suivante:
Pour récupérer les champs de chaque table, et donc pouvoir faire quelque chose du genre:
Code : Sélectionner tout - Visualiser dans une fenêtre à part Select replace(wmsys.wm_concat(':new.' || COLUMN_NAME), ',', ' || '';'' || ') COL from USER_TAB_COLUMNS where TABLE_NAME='MATABLE';
Seulement, je n'ai pas le résultat voulu... Le champ VALEURS de la table XTRIGTRC vaut : :new.CHAMP1|| ';' || :new.CHAMP2|| ';' || :new.CHAMP3 (forcément)
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
Du coup je bloque sur cette requête: comment faire pour récupérer de manière automatique les champs d'une table donnée, à l'intérieur d'un trigger ?
Merci d'avance de votre aide.

 

 
		
		 
         
 

 
			
			

 
   
 


 Triggers Oracle automatisés
 Triggers Oracle automatisés
				 Répondre avec citation
  Répondre avec citation


 
 
 
			
 
				
Partager