Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 12/04/2011 11:40:27
- juhel
- Membre
Nom des champs en paramètre dans une procédure
Bonjour,
Je suis débutant en base de données (BDD) et plus particulièrement en procédure stockée. Je ne sais donc pas si ce que je veux faire est faisable.
Voici mon problème : supposons que j'ai une BDD avec une table Table1 contenant 3 champs ch1, ch2 et ch3. Je souhaite écrire une procédure stockée me permettant de récupérer le résultat des requêtes suivantes (seulement l'une des 3) :
SELECT COUNT(*) FROM Table1 WHERE ch1 = une_valeur_passée_en_paramètre // CH1
SELECT COUNT(*) FROM Table1 WHERE ch2 = une_valeur_passée_en_paramètre // CH2
SELECT COUNT(*) FROM Table1 WHERE ch3 = une_valeur_passée_en_paramètre // CH3
Pour n'avoir qu'une seule procédure stockée et non trois, je souhaitais passer le nom du champ en paramètre, du style
SELECT COUNT(*) FROM Table1 WHERE champ_en_parametre = une_valeur_passée_en_paramètre
avec champ_en_parametre valant soit ch1, soit ch2, soit ch3. Est-ce possible?
Merci d'avance,
Philippe
Hors ligne
#2 12/04/2011 14:26:53
- gleu
- Administrateur
Re : Nom des champs en paramètre dans une procédure
Oui, c'est possible. Il suffit d'utiliser des requêtes dynamiques.
Guillaume.
Hors ligne
#3 12/04/2011 15:37:49
- juhel
- Membre
Re : Nom des champs en paramètre dans une procédure
Ca marche. Merci beaucoup.
C'est exactement ce que je cherchais.
Pour info, c'est bien décrit au chapitre 38.5.4 de la doc de PostgresSQL (quand on sait quoi chercher (requête dynamique), on trouve plus facilement!).
Philippe
Hors ligne
Pages : 1