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 16/11/2007, 12h52   #1
Invité régulier
 
Inscription : novembre 2005
Messages : 11
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 11
Points : 6
Points : 6
Par défaut PL/pgsql appels dynamiques

Bonjour,

Je cherche a obtenir le résultat d'une fonction dans un bloc d'appel dynamique, mais je ne sais pas si cela est faisable.

Exemple:

Le fonction test2() fait un appel a la fonction test(). Je voudrais récupérer dans test2() la valeur retournée dans test().

Le code actuel m'indique que select into dans la commande execute n'est pas encore implémenté.

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
 
-- DROP FUNCTION technical.test();
CREATE OR REPLACE FUNCTION technical.test()
  RETURNS text AS
$BODY$DECLARE
	BEGIN
	RETURN 'test';
END;$BODY$
  LANGUAGE 'plpgsql' VOLATILE;
 
--DROP FUNCTION technical.test2();
CREATE OR REPLACE FUNCTION technical.test2()
  RETURNS text AS
$BODY$DECLARE
	retour text;
	name text;
	BEGIN 
	name:='technical.test()';
	EXECUTE 'select * INTO retour FROM '||name;
	RETURN retour;
END;$BODY$
  LANGUAGE 'plpgsql' VOLATILE;
 
SELECT * FROM technical.test2();
Est-il possible de faire ce genre d'opératiion?

Et si oui, comment?

Merci de votre aide,

Sébastien
sebdz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2007, 13h07   #2
Invité régulier
 
Inscription : novembre 2005
Messages : 11
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 11
Points : 6
Points : 6
Bon, pour ceux que ca intéresse, j'ai fini par trouver la réponse ici: http://www.developpez.net/forums/sho...d.php?t=341052

il suffisait de faire
Code :
1
2
 
EXECUTE 'select * FROM '||name INTO retour;
:-)
sebdz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h59.


 
 
 
 
Partenaires

Hébergement Web