sql >> Database teknologi >  >> RDS >> Oracle

Hvordan bruger man partitionsnavn som en parameter i select-sætningen?

Som allerede nævnt i mine kommentarer tror jeg PARALLEL giver ingen mening (men jeg er ikke sikker på det) og at køre hver partition en efter en er også nytteløst, når du kopierer hele tabellen.

Under alle omstændigheder burde din kode fungere, når du skriver den sådan her:

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;

Jeg kender ikke dine krav, men måske Udveksling af partitioner og underpartitioner kunne være en mulighed for dig.




  1. DB Design Spørgsmål om Nullable Foreign Keys og Normalisering

  2. MySQL atomic insert-hvis-ikke-eksisterer med stabil autoincrement

  3. Mysql datatype eller php-kode til at stige med 1 hver gang en side i min database indlæses i en browser

  4. 2 måder at liste alle triggere i en PostgreSQL-database