Както вече беше посочено в моите коментари, мисля, че PARALLEL
няма никакъв смисъл (но не съм сигурен в това) и стартирането на всеки дял един по един също е безполезно, когато копирате цялата таблица.
Както и да е, вашият код трябва да работи, когато го напишете така:
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;
Не знам вашите изисквания, но може би Обмяна на дялове и подразделения може да бъде опция за вас.