Ziehe das mal bitte nicht so aus dem Kontext, wo ich die Antwort gab. Ich meinte exakt die Mail, die ich nannte, und auch nicht das dort zitierte, sondern das geschriebene. Ganz konkret, ich habe nur Deine Fehlermeldung an Google verfüttert und u.a. das erhalten. Und ganz konkret meinte ich dies hier:
select * from f_a_prrueba3() as (campo1 int, campo2 varchar(30), etc, etc);
Ich kann kein spanisch, leidlich englisch und a bissl deutsch, aber diese Antwort bezog sich auf:
> > ----------------------------------------------------------------------
> > -------- ERROR : a column definition list is required for functions
> > returning "record"
> > ----------------------------------------------------------------------
Und exakt dieses Problem hattest Du geschildert.
Ich zeigte Dir dann noch einen kleinen Schnellschuß von mir, hier noch einmal:
test=# select * from foo;
a | b | c
---+---+---
1 | | 3
(1 row)
Time: 0.686 ms
test=*# create or replace function abc() returns setof record as $$begin select * from foo; end; $$language plpgsql;
CREATE FUNCTION
Time: 3.803 ms
test=*# select * from abc() as (a int, b int, c int);
ERROR: SELECT query has no destination for result data
HINT: If you want to discard the results, use PERFORM instead.
Da hab ich das, was in der spanischen Mail stand, demonstriert. Und dazu noch die nächste Fehlermeldung, die Du bei Deinem gezeigten Code bekommen wirst, wenn Du das eben behandelte Problem gelöst hast:
ERROR: SELECT query has no destination for result data
HINT: If you want to discard the results, use PERFORM instead.
Du willst aber etwas rückgeben, also ‘mußt Du durch das Ergebnis latschen’.
Aber auch, wenn Du das geschafft hast, wirst Du ein Problem haben: Deine Zielstellung, irgend was schwammig formuliertes als Frage der DB vorzuwerfen und je nach Mondphase und Windrichtung was passendes als Antwort zu bekommen, wird so nicht gehen.
Deshalb hatte ich einen neuen Thread gemacht, um ausgehend von der allerersten Frage und dem bisher gesammelten Wissen vielleicht einen Weg aus dem Irrgarten zu zeigen. Schade, daß zwar die letzte Antwort in diesem neuen Thread war, sich aber auf den alten bezog.
Andreas, noch reichlich 1 Woche bis zum Urlaub…