|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre du Club
![]() Inscription : février 2006 Messages : 134 ![]() |
Bonjour voici mon probleme.
j'ai une table : ma_table ( id , val1 , val2 , val3 ) ceci fonctionne Code :
Code :
DETAIL: Final SELECT returns too few columns. CONTEXT: SQL function "test" |
||||
|
|
00
|
|
|
#2 |
|
Membre actif
![]() Développeur multimédia Inscription : avril 2007 Messages : 175 ![]() |
Je viens de tester avec une table en locale, ça marche très bien. Par contre, (et je ne sais pas si ça peut t'aider) j'ai mis en return setof record.
A+ |
|
|
00
|
|
|
#3 | |
|
Membre du Club
![]() Inscription : février 2006 Messages : 134 ![]() |
Citation:
|
|
|
|
00
|
|
|
#4 | ||
|
Membre actif
![]() Développeur multimédia Inscription : avril 2007 Messages : 175 ![]() |
Ah !! euhh !! je l'ai effacé, mais ça donne à peu près ça normalement :
Code :
|
||
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : février 2006 Messages : 134 ![]() |
Merci
|
|
|
00
|
|
|
#6 |
|
Expert Confirmé Sénior
![]() ![]() Inscription : mai 2004 Messages : 4 490 ![]() |
Bonjour,
c'est tout à fait normal, tu déclares que ta fonction retourne un jeu d'enregistrements de type ma_table, or ce type composite regroupe id, val1, val2 et val3. Si tu ne retournes que val1, les types ne concordent pas, et c'est la signification du message d'erreur que tu obtiens. En déclarant record comme type de retour, ta fonction peut renvoyer n'importe quel jeu d'enregistrements. Ca règle ton problème immédiat, mais ça risque d'en poser d'autres ultérieurement. Il vaut mieux dans ce cas, si val1 est un integer par exemple, déclarer RETURNS SETOF 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
|
Copyright © 2000-2012 - www.developpez.com