FETCH p_cursor BULK COLLECT INTO rec_array limit 1000;
means it stops at 1000

FETCH p_cursor BULK COLLECT INTO rec_array limit 5000;
stops at 5000. AFter that it is not progressing.