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