Ich erstelle dynamisch eine Abfrage in einer plpgsql-Funktion, die eine Quellentabelle als eingehende Variable akzeptiert. Ich möchte die Ergebnisse der erstellten SELECT
-Anweisung zurückgeben, die Aggregationen für die angegebene Tabelle durchführt und Ergebnisse dieser Tabelle zurückgibt.Dynamische Definition zurückkehrender Zeilentypen basierend auf einer übergebenen gegebenen Tabelle in plpgsql?
jedoch im Moment erhalte ich folgende Fehlermeldung:
********** Error **********
ERROR: a column definition list is required for functions returning "record" SQL state: 42601
So sieht es aus wie ich Spaltentypen der Plattenreihe ich zurückkehren will definieren müssen.
I found this answer Hier können Sie die Tabellentypdeklaration umgehen, indem Sie die Tabelle angeben, zu der die resultierende Zeile passt.
RETURNS SETOF some_existing_table
aber in meinem Fall, da die Tabelle, deren Spaltentypen Ich möchte die Funktion übergeben wird, übereinstimmen, ich weiß nicht, die Tabelle, bis ich die Variablen übergeben manipulieren kann (nach DECLARE
/BEGIN
).
Idealerweise möchte ich die Abfrageergebnisse (mehrere Zeilen) der Aggregationsabfrage, die ich innerhalb der Funktion erstellt habe, zurückgeben. Gibt es eine Möglichkeit, Ergebnisrückgabetypen basierend auf einer bekannten Tabelle dynamisch innerhalb der Funktion zu definieren?