PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Was ist der einfachste Weg, um ein Recordset aus einer gespeicherten PostgreSQL-Prozedur zurückzugeben?

Es besteht auch die Möglichkeit, RETURNS TABLE(...) zu verwenden (wie beschrieben in der PostgreSQL-Handbuch ), was ich persönlich bevorzuge:

CREATE OR REPLACE FUNCTION get_countries()
RETURNS TABLE(
    country_code text,
    country_name text
)
AS $$
    SELECT country_code, country_name FROM country_codes
$$ LANGUAGE sql;

Dies ist praktisch dasselbe wie die Verwendung von SETOF tablename , deklariert jedoch die Tabellenstruktur inline, anstatt auf ein vorhandenes Objekt zu verweisen, sodass Joins und dergleichen weiterhin funktionieren.