Hi Sangamesh,
JOIN operation can be considered as a dynamic view, where it will fetch all the qualified records into database buffer and further processing will be done on top of that. In your case, the 100000+ entries are loaded into the buffer and insert is supposed to happen after that.
Can you try creating a procedure which dose the same using a cursor which does the commit operation after 1000( may be lesser or more) inserts ?
Sreehari