Bonjour,

J'ai créé une fonction qui prend en paramètre un identifiant de champ.
Ce champ peut avoir plusieurs valeurs.

Ma fonction retournera au final autant de colonnes que le champ a de valeurs. Ces valeurs seront toujours du même type : double.

Je déclare ma fonction comme suit
CREATE OR REPLACE FUNCTION maFonction(champ_id integer) return SETOF XXX AS
......
.....
.....
Mon problème concerne le type de retour de ma fonction
- Si je définis ma fonction comme retournant un SETOF record, le message suivant apparaît:
a column definition list is required for functions returning "record"
Après avoir cherché dans la documentation, j'ai vu que je devais exécuter ma fonction come suit
select * from maFonction(15) AS (val1 double, val2 double, val2 double, ...)
Ceci me retourne bien des données, en mettant le bon nombre de val.

Le problème est :
Comme le nombre de colonnes retournées dépend du paramètre passé à la fonction (nombre de valeurs de champ), je ne sais pas à l'avance combien de valeurs elle va retourner et je ne peux donc pas l'invoquer avec la bonne syntaxe...

Existe-t-il un type générique du style SETOF record double... ou un truc dans le genre qui permettrait de dire que la fonction ne retournera de toute façon que des double, mais un certain nombre (inconnu à son exécution)....


Merci