Perhaps you might actually post the code showing what you are trying to do. I created a short test to show what would happen if no rows are returned from the query used to populate the collection. you can see that it is a different error. I don't think anyone will be able to help you until they know what you are trying to do.
Code:
SQL> declare
type type1 is table of varchar2(128)
index by pls_integer;
tab1 type1;
begin
select table_name
bulk collect
into tab1
from dba_tables
where 1=0;
dbms_output.put_line(tab1(1));
for i IN tab1.first..tab1.last
loop
dbms_output.put_line(tab1(i));
end loop;
end;
/
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 declare
*
ERROR at line 1:
ORA-01403: no data found
ORA-06512: at line 13