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 13/06/2006, 16h03   #1
Invité de passage
 
Inscription : juin 2006
Messages : 8
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 8
Points : 0
Points : 0
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 :
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?
@n@kin.be est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2006, 11h08   #2
Membre chevronné
 
Avatar de gerald2545
 
Inscription : février 2003
Messages : 643
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 643
Points : 660
Points : 660
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
gerald2545 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2006, 15h40   #3
Invité de passage
 
Inscription : juin 2006
Messages : 8
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 8
Points : 0
Points : 0
Par défaut ok!

Rien de bien spécial en fait, elle retourne 1 enregistrement en fonction de l'argument fourni.
Citation:
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.
@n@kin.be 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 12h51.


 
 
 
 
Partenaires

Hébergement Web