IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

Fonction: Retour d'un SET dynamique


Sujet :

PostgreSQL

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 8
    Points : 2
    Points
    2
    Par défaut Fonction: Retour d'un SET dynamique
    J'ai un petit soucis avec PostgreSQL, SGBD avec lequel je débute.

    Voici la définition de la fonction à problème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    CREATE OR REPLACE FUNCTION f_select_member_info(int4)
      RETURNS record AS
    $BODY$
     
    DECLARE 
    	memtype char(2);
    	myrec record;
     
    BEGIN
     
    SELECT member_type FROM t_members WHERE card_id=$1 INTO memtype;
     
    IF memtype = 'EF' THEN
    	SELECT * INTO myrec
    	FROM f_dbo_ef_member($1);
    ELSIF memtype = 'AD' THEN
    	SELECT * INTO myrec
    	FROM f_dbo_ad_member($1);
    ELSE
    	SELECT * INTO myrec
    	FROM f_dbo_ag_member($1);
    END IF;
     
    RETURN myrec;
     
    END;
     
    $BODY$
    LANGUAGE 'plpgsql' VOLATILE;
    les fonctions f_dbo_XX_member() fonctionnent très bien séparément et me donnent donc le résultat voulu mais j'aimerais qu'une fonction plus générale puisse appeler tel ou tel fonction.
    D'après ce que j'ai lu, je suppose que le problème vient de ma déclaration dans laquelle je précise pas de structure de retour mais je ne SAIS pas le faire puisque ces fonctions retournent des recordsets différents.
    Une idée?

  2. #2
    Membre éclairé
    Avatar de gerald2545
    Profil pro
    Inscrit en
    Février 2003
    Messages
    744
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 744
    Points : 773
    Points
    773
    Par défaut
    tu peux donner plus de précisions sur tes fonctions f_dbo_xxx et ce qu'elles retournent?
    je ne visualise pas bien ton problème

  3. #3
    Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 8
    Points : 2
    Points
    2
    Par défaut ok!
    Rien de bien spécial en fait, elle retourne 1 enregistrement en fonction de l'argument fourni.
    CREATE OR REPLACE FUNCTION f_dbo_ef_member(int4)
    RETURNS SETOF v_member_ef_fulldetails AS
    $BODY$
    SELECT *
    FROM v_member_ef_fulldetails vef
    WHERE vef.card_id = $1;
    $BODY$
    LANGUAGE 'sql' VOLATILE;
    Les Views EF, AD et AG sont presque identiques mais ne retournent pas le même nombre et le même genre d'informations.

Discussions similaires

  1. Réponses: 7
    Dernier message: 07/10/2011, 10h38
  2. Réponses: 7
    Dernier message: 27/08/2006, 17h59
  3. Réponses: 10
    Dernier message: 03/05/2006, 11h34
  4. fonction retour pipelined
    Par caesa dans le forum Oracle
    Réponses: 13
    Dernier message: 27/03/2006, 16h26
  5. [C#] Retour à la ligne dynamique
    Par stailer dans le forum ASP.NET
    Réponses: 2
    Dernier message: 07/02/2005, 12h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo