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 : 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
 
-- 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