sql >> Database >  >> RDS >> PostgreSQL

Het opslaan van de uitvoer van een dynamische query die refcursor gebruikt in een tabel

Dit is makkelijker op te lossen dan je vorige vraag, omdat we hier niet in de problemen komen met dynamische retourtypes. U hoeft alleen de queryreeks correct samen te voegen voordat u deze doorgeeft aan EXECUTE .

Voor een nieuwe tafel :

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

Waar myresult(...) geeft de tekst terug voor een geldige SELECT verklaring.

Toevoegen aan een bestaande tabel :

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

Als je weet het resultaattype van de zoekopdracht komt overeen met de tabel, u kunt de lijst met doelkolommen weglaten.




  1. Visual Basic voor toepassingen in Microsoft Access

  2. Oracle:Concat met scheidingsteken, maar alleen als beide operanden NIET NULL zijn

  3. Sterrenschema versus sneeuwvlokschema

  4. Oracle-functie om overeenkomst tussen strings te retourneren