scharan07,
the line
Code:
EXIT WHEN CURSOR_RESULTS%NOTFOUND;
is in the wrong place.
The data of the last fetch is in your LIST1 table, but doesn't get printed, because the NOTFOUND is raised before the output - loop.
If you program it
Code:
BEGIN
OPEN CURSOR_RESULTS;
LOOP
DBMS_OUTPUT.PUT_LINE('CURSUR ITERATION');
FETCH CURSOR_RESULTS BULK COLLECT INTO LIST1 LIMIT 5;
WALKER:= LIST1.FIRST;
FOR I IN 1..LIST1.COUNT LOOP
ID:=LIST1(WALKER);
WALKER:=LIST1.NEXT(I);
DBMS_OUTPUT.PUT_LINE('ID ITERATION'||ID);
END LOOP;
EXIT WHEN CURSOR_RESULTS%NOTFOUND;
END LOOP;
CLOSE CURSOR_RESULTS;
END;
you will get the expected results.
(As always when no version is mentioned, I assume the latest, which is 11gR2 at the moment)