|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre à l'essai
![]() Inscription : août 2006 Messages : 67 ![]() |
Bonjour, voilà je cherche à faire une fonction plpgsql qui renvoi un liste d'enregistrement qui serront traiter par une autre fonction "générique".
La premiere étant pour renvoyé la liste des société avec leur nombre total de connexion sur une période donner. La seconde donne la liste des 10 meilleurs (générique car elle poura faire la même chose avec les marques, etc.. utilisé dans la base) Seulement voilà je n'arrive déjà pas à faire la première correctement Code :
Code :
SELECT meilleur_societe(2007, 5, 8, 444) AS blob; ERROR: set-valued function called in context that cannot accept a set État SQL :0A000 Contexte : PL/pgSQL function "meilleur_societe" line 15 at return next par contre si je fais la "requete" SQL directement avec les paramètres (hors fonction donc) j'ai bien ce que je veux. Mon pb est donc que je ne sais pas comment renvoyer un record de 1 ou plusieur ligne correctement. Merci pour votre aide |
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() ![]() Inscription : mai 2004 Messages : 4 490 ![]() |
Bonjour,
question classique. A partir du moment où une procédure stockée renvoie un jeu d'enregistrement, elle est considérée comme une table d'un point de vue SQL. En conséquence, on la trouve dans la clause FROM de la requête SQL. D'autre part, du fait qu'elle renvoie un type RECORD générique, il faut indiquer le type et le nom des champs renvoyés (les noms ne sont pas obligés de concorder avec ceux utilisés dans la fonction, par contre les types doivent être compatibles). Ce qui donne : Code :
SELECT * FROM meilleur_societe(2007, 5, 8, 444) AS (id integer, tot integer);
__________________
FAQ XML ------------ « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser » Giacomo Leopardi |
|
|
00
|
|
|
#3 |
|
Membre à l'essai
![]() Inscription : août 2006 Messages : 67 ![]() |
merci bien ca marche nikel ^^ |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com