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 25/05/2011 15:10:13

bebert73
Membre

fonction avec le nom d'une colonne en paramètre

Bonjour,

une fonction peut-elle retourner une valeur dont le type dépend de la valeur du paramètre passé en entrée ?

je m'explique :

soit une table "parametres" qui contient divers parametres d'une application web (version, date de sortie, etc...)
CREATE table parametres (
   version_applicatif      VARCHAR(8) PRIMARY KEY,
   date_sortie               DATE,
   version_firefox          VARCHAR(8),
   langue_defaut            CHAR(3)
);

Avec les valeurs
version_applicatif          date_sortie          version_firefox          langue_defaut
1.0                               12/03/2011           3.6                          ENG
1.1                               03/04/2011           4.0                          FRA


j'aimerais écrire une fonction "recup_param" qui fonctionnerait de la façon suivante :

SELECT recup_param("1.0", "date_sortie");        ==> devrait renvoyer "12/03/2011"
SELECT recup_param("1.1", "langue_defaut")     ==> devrait renvoyer "FRA"
SELECT recup_param("1.1", version_firefox")     ==> devrait renvoyer "4.0"
etc.

Donc une fonction qui aurait en IN deux paramètres VARCHAR (la version et le nom du paramètre souhaité), et une sortie dont le type dépend de la valeur du paramètre passé en entrée

c'est faisable ? si oui quel devrait être le corps d'une telle fonction ?

Hors ligne

#2 25/05/2011 15:22:11

Marc Cousin
Membre

Re : fonction avec le nom d'une colonne en paramètre

C'est impossible de faire varier le type de sortie d'une fonction indépendamment de son type d'entrée. Une fonction polymorphique, sous PG, a le même type polymorphique en entrée et en sortie: vous lui passez un int, elle vous retourne un int.
C'est expliqué ici: http://docs.postgresqlfr.org/9.0/extend … olymorphic


La réponse est donc:
une fonction peut-elle retourner une valeur dont le type dépend de la valeur du paramètre passé en entrée ?
Non
une fonction peut retourner une valeur dont le type dépend du type du paramètre passé en entrée ?


Marc.

Hors ligne

#3 25/05/2011 15:26:52

bebert73
Membre

Re : fonction avec le nom d'une colonne en paramètre

ok merci

Hors ligne

Pied de page des forums