'package is big' : it's a PL/SQL package

This means you only use 1 cpu, and you cannot use parallisme to speed up the procedure.

I would try to split it in 2 :
1.
a clean file to db load procedure -> using sql*ldr - direct load
2.
an etl procedure that processed the loaded data. Using partitioning on the staging-table it may be possible you can speed things up by executing the same procedures in parallel, just use another partition of the staging-table as your input for the procedure.

HTH
Gert