2016-11-14 1 views
1

Ich untersuche, ob es möglich ist, dynamisch eine Ansicht zu erstellen und dann alle Daten aus derselben in einer einzigen Funktion zurückzugeben. Mein Ziel ist es, eine einzelne Funktion zu erstellen, die bei Ausführung der Funktion alle Daten aus einer dynamisch erstellten Ansicht zurückgibt. Ich kann es in Oracle und SQL Server tun, aber bisher bin ich nicht sicher, ob es in Postgres so einfach ist. Wenn jemand Codebeispiele, Ideen zeigen oder mir in die richtige Richtung zeigen könnte, wäre ich super glücklich :)Dynamische SQL- und Setof-Funktionen in PG

Ich weiß bereits, wie man eine SETOF-Funktion oder eine dynamische SQL-Funktion erstellt, aber beide in einem einzigen arbeiten Programm-/Funktionsfunktion ist eine Herausforderung, die ich bisher nicht bewältigen kann ...

Antwort

0

Der zurückgegebene Inhalt kann dynamisch sein, die Struktur sollte statisch sein.

CREATE OR REPLACE FUNCTION fx(OUT a int, OUT b int) 
RETURNS SETOF record AS $$ 
BEGIN 
    RETURN QUERY EXECUTE format('SELECT i, i+1 FROM generate_series(1,3)'); 
END; 

PostgreSQL documantation ist gut, bitte, Angst, es nicht lesen - https://www.postgresql.org/docs/9.5/static/plpgsql.htmlhttps://www.postgresql.org/docs/9.5/static/plpgsql.html. Die plpgsql-Seiten benötigen nicht mehr als zwei Stunden.