-
Utilisation des curseurs
Bonjour à tous,
J'ai une requête qui renvoie des nombres, et je dois faire une fonction qui renvoie ces nombres sous forme de tableau de nombres où chaque valeur est la somme de ces premiers nombres, par tranche de 100.
Pour être plus explicit, voici un exemple :
Code:
select nb from numbers
=
23
56
12
45
84
21
26
78
Je voudrais que ma fonction me renvoie {91, 45, 84, 47, 78}
J'ai essayé avec une requête "simple" mais après bien des heures je pense qu'il faut passer par un curseur. En revanche.. à quoi ressemblerait cette fonction avec ce curseur ? Rien que le type de retour j'ai du mal (je suis débutant)..
Pouvez-vous m'aiguiller ?
Merci à vous :)
A bientôt
-
Ca dépend si le select peut être fait à l'intérieur de la fonction ou si la fonction doit recevoir le résultat du select en entrée.
Dans le 1er cas ça revient à du procédural comme ça pourrait être écrit dans n'importe quel langage de script. Pas besoin de curseur, une simple boucle basée FOR nombre IN SELECT.... suffirait.
Dans le 2eme cas qui est beaucoup plus générique, ça parait faisable avec une fonction d'agrégation (CREATE AGGREGATE)
Avec cette méthode tu devrais pourrais faire
Code:
select mafonction(nombre) FROM table_des_nombres
et ça renverrait directement le tableau, de la même manière que AVG() renverrait la moyenne des nombres ou MAX() le maximum.