I may have just missed it in the docs or someone wrote it somewhere... just wondering if anyone else has seen this. DB 9.2.0.6 easiest to explain with pseudo-code open cursor; loop fetch cursor bulk collect into l_plsqltable limit 100; ... do stuff exit when cursor%notfound; end loop; close cursor; end; If the table I am reading has exactly 100 rows(have not tested it with multiples of 100, but suspect the same thing happens). The cursor will loop one more time even though there are no records and if you try to access the data you get a 'no data found' error. I know how to code around it. However if you have 99,101,1,2,12,10, etc... records... oracle knows its done and breaks. anyone else run into this?