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

Speichern der Ausgabe einer dynamischen Abfrage, die Refcursor in einer Tabelle verwendet

Dies ist einfacher zu lösen als Ihre vorherige Frage, da wir hier keine Probleme mit dynamischen Rückgabetypen bekommen. Sie müssen die Abfragezeichenfolge nur korrekt verketten, bevor Sie sie an EXECUTE .

Für eine neue Tabelle :

DO
$$
BEGIN
EXECUTE 'CREATE TABLE mydaughtertable AS ' || myresult('dkj_p_k27ac','enri');
END
$$;

Wo myresult(...) gibt den Text für ein gültiges SELECT zurück Aussage.

Zum Hinzufügen zu einer vorhandenen Tabelle :

...
EXECUTE 'INSERT INTO TABLE mydaughtertable(<colum list>) '
      || myresult('dkj_p_k27ac','enri');
...

Wenn Sie wissen der Ergebnistyp der Abfrage mit der Tabelle übereinstimmt, können Sie die Liste der Zielspalten weglassen.