Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/02/2008, 11h56   #1
Candidat au titre de Membre du Club
 
Inscription : février 2007
Messages : 26
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 26
Points : 11
Points : 11
Par défaut [PL/SQL] Requête dynamique

Bonjour,

Je suis en train de coder un trigger qui se lance lors de l'ajout d'un nouvel enregistrement dans une table. L'objectif de ce trigger est d'être le plus générique possible, et donc je souhaite pouvoir accéder aux différentes colonnes d'un NEW à l'aide d'une variable.

Dans le code, ça donne ça :
Code :
1
2
3
4
5
6
7
8
9
10
 
OPEN liste_colonnes; -- liste_colonnes contient le nom de toutes les colonnes de la tables qui a lancé le trigger
	FETCH liste_colonnes INTO nom_colonne;
	LOOP
		toto := 'select NEW.' || nom_colonne; -- normalement, ça doit me retourner la valeur insérée dans la colonne
		EXECUTE toto INTO valeur;
		liste := liste || ' ' || nom_colonne || ' : ' || valeur; -- pour afficher la liste [nom de colonne : valeur]
		FETCH liste_colonnes INTO nom_colonne;
		EXIT WHEN NOT FOUND;  
	END LOOP;
L'erreur qui m'est retourné est : "NEW used in query that is not in a rule".
J'ai cherché sur le forum, et internet, je n'ai pas réussi à trouver de réponse, l'un d'entre vous l'a-t-il ?
Ridculle est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h46.


 
 
 
 
Partenaires

Hébergement Web