Would it be possible to have the DBMS_PARALLEL_EXECUTE get the chunks from such SQL query instead of a table? Would it be possible to have a view as the source for the chunking process? Yes. Ultimately DBMS_PARALLEL_EXECUTE breaks an existing process up into multiple processes via you providing a means to which the break-up can be done.
So if your original statement is (say):
insert into X
select ...
from table1, table2, table3
where [lots of joins]
and [lots of other stuff]
then under DBMS_PARALLEL_EXECUTE the statement you would use is (for example)
insert into X
select ...
from table1, table2, table3
where [lots of joins]
and [lots of other stuff]
and table1.col between :start_id and :end_id
and use (say) CREATE_CHUNKS_BY_NUMBER_COL to build the ranges.
What DBMS_PARALLEL_EXECUTE will then do is create multiple scheduler jobs where
job1: runs the insert with start_id>0, end_id<=1000
job2: runs the insert with start_id>1000, end_id<=2000
job3: runs the insert with start_id>2000, end_id<=3000
job4: runs the insert with start_id>3000, end_id<=4000
where you define the number of chunks and the size of each.