Dear Nidhi,
this behavior is independent of the source of your select statement, it also would happen if you select a plain database table.
There is no way to keep an cursor open and doing a COMMIT WORK.
If your result set is not too large, you could do a SELECT ... INTO TABLE <itab> and then LOOP over the internal table.
Otherwise, you must explicited SELECT the data packages in sizes which you can process together and do an COMMIT WORK.
Best Regards, Thomas