Zurückgeben einer virtuellen Tabelle aus einer Postgres-Funktion
In Postgres kann das Erstellen einer virtuellen Tabelle (ähnlich den virtuellen Tabellen von Oracle) mit erreicht werden eine Funktion. Mit dieser Funktion können Sie eine benutzerdefinierte Tabelle mit einer definierten Struktur und einem definierten Inhalt zurückgeben.
Korrekte Syntax
Hier ist die korrigierte Syntax für die von Ihnen angegebene Funktion:
CREATE OR REPLACE FUNCTION "public"."storeopeninghours_tostring" (open_id numeric) RETURNS TABLE (a int, b int, c int) AS DECLARE returnrecords RECORD; BEGIN INSERT INTO returnrecords(a, b, c) VALUES (1, 2, 3); INSERT INTO returnrecords(a, b, c) VALUES (3, 4, 5); INSERT INTO returnrecords(a, b, c) VALUES (3, 4, 5); RETURN TABLE returnrecords; END;
Schlüssel Punkte
Aufrufen der Funktion
Sie können jetzt die Funktion aufrufen, um die virtuelle Tabelle abzurufen:
SELECT * FROM "public"."storeopeninghours_tostring"(<open_id>);
Alternative Syntax
In Postgres 8.4 oder höher können Sie auch Folgendes verwenden PL/pgSQL-Syntax:
CREATE OR REPLACE FUNCTION f_foo() RETURNS TABLE (a int, b int, c int) AS $$ BEGIN RETURN QUERY VALUES (1, 2, 3), (3, 4, 5), (3, 4, 5); END; $$ LANGUAGE plpgsql;
Einfache SQL-Lösung
Für einen einfachen Fall wie diesen können Sie auch eine einfache SQL-Anweisung verwenden:
VALUES (1, 2, 3), (3, 4, 5), (3, 4, 5)
Das obige ist der detaillierte Inhalt vonWie erstelle ich eine virtuelle Tabelle aus einer PostgreSQL-Funktion und gebe sie zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!