sql >> Database >  >> RDS >> Oracle

Hoe de partitienaam te gebruiken als parameter in de select-instructie?

Zoals al vermeld in mijn opmerkingen denk ik PARALLEL slaat nergens op (maar daar ben ik niet zeker van) en elke partitie één voor één uitvoeren is ook nutteloos als je de hele tabel kopieert.

Hoe dan ook, je code zou moeten werken als je het als volgt schrijft:

FOR i in products_tab.first .. products_tab.last LOOP
   EXECUTE IMMEDIATE 'ALTER SESSION FORCE PARALLEL DML PARALLEL 24';
   EXECUTE IMMEDIATE 'INSERT /*+ APPEND PARALLEL(24) */ INTO tbla2
      ("ID", datetime, ...)
   SELECT * 
   FROM tbl1 PARTITION ('||products_tab(i).partition_name||)';
   COMMIT;

END LOOP;

Ik weet niet wat uw vereisten zijn, maar misschien Partities en subpartities uitwisselen zou een optie voor je kunnen zijn.




  1. MariaDB JSON_ARRAY() uitgelegd

  2. Zoekresultaten voor datumbereik ophalen

  3. Kan geen verbinding maken met database (000webhost)

  4. Wat is een unieke beperking in SQL Server - SQL Server / TSQL-zelfstudie, deel 95