sql >> Databasteknik >  >> RDS >> Oracle

Hur använder man partitionsnamn som en parameter i select-satsen?

Som redan nämnts i mina kommentarer tror jag PARALLEL Det är inte meningsfullt (men jag är inte säker på det) och att köra varje partition en efter en är också värdelöst när du kopierar hela tabellen.

Hur som helst, din kod borde fungera när du skriver den så här:

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;

Jag vet inte dina krav men kanske Utbyte av partitioner och underpartitioner kan vara ett alternativ för dig.




  1. hur optimerar jag mysql-frågan om jag har för många ELLER-operatorer i min fråga?

  2. Hur inaktiverar man kolumnstatistik i MySQL 8 permanent?

  3. Hur kontrollerar jag om e-post redan är registrerad?

  4. MySQL Relational Division