PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#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

Pied de page des forums