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.