Come già affermato nei miei commenti penso PARALLEL
non ha alcun senso (ma non ne sono sicuro) ed eseguire ogni partizione una per una è anche inutile quando copi l'intera tabella.
Ad ogni modo, il tuo codice dovrebbe funzionare quando lo scrivi in questo modo:
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;
Non conosco i tuoi requisiti, ma forse Scambio di partizioni e sottopartizioni potrebbe essere un'opzione per te.