The issue is the object type you're trying to base the table on -- it's unnecessary:
SQL> create or replace type dual_tab as table of date;
2 /
Type created.
SQL>
SQL> declare
2 cursor selDual_cur is select sysdate ddate from dual;
3 selDual dual_tab;
4
5 begin
6
7 open selDual_cur;
8 loop
9 fetch selDual_cur bulk collect into selDual;
10 exit when selDual.count = 0;
11 dbms_output.put_line('ici');
12 end loop;
13
14 end;
15 /
ici
PL/SQL procedure successfully completed.
SQL>
David Fitzjarrell