Như đã nêu trong phần nhận xét của tôi, tôi nghĩ PARALLEL
không có ý nghĩa gì (nhưng tôi không chắc về điều đó) và chạy từng phân vùng một cũng vô ích khi bạn sao chép toàn bộ bảng.
Dù sao đi nữa, mã của bạn sẽ hoạt động khi bạn viết nó như thế này:
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;
Tôi không biết yêu cầu của bạn nhưng có thể Trao đổi Phân vùng và Tiêu đề phụ có thể là một lựa chọn cho bạn.