PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Enregistrement de la sortie d'une requête dynamique qui utilise le refcursor dans une table

Ceci est résolu plus facilement que votre question précédente, car nous n'avons pas de problèmes avec les types de retour dynamiques ici. Il vous suffit de concaténer correctement la chaîne de requête avant de la transmettre à EXECUTE .

Pour une nouvelle table :

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

myresult(...) renvoie le texte d'un SELECT valide déclaration.

Pour ajouter à une table existante :

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

Si vous savez le type de résultat de la requête correspond à la table, vous pouvez omettre la liste des colonnes cibles.