PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Salvataggio in una tabella dell'output di una query dinamica che utilizza refcursor

Questo è risolto più facilmente rispetto alla tua domanda precedente, perché qui non abbiamo problemi con i tipi di ritorno dinamici. Devi solo concatenare correttamente la stringa di query prima di passarla a EXECUTE .

Per una nuova tabella :

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

Dove myresult(...) restituisce il testo per un SELECT valido dichiarazione.

Per aggiungere a una tabella esistente :

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

Se sai il tipo di risultato della query corrisponde alla tabella, puoi omettere l'elenco delle colonne di destinazione.