Ah sorry - I missed the "delete" part.
You still need undo for consistent read, eg
SQL> create global temporary table GTT
2 ( x int )
3 on commit delete rows;
Table created.
SQL>
SQL>
SQL> insert into gtt values (2);
1 row created.
SQL>
SQL> variable rc refcursor
SQL> exec open :rc for select * from gtt;
PL/SQL procedure successfully completed.
SQL>
SQL> insert into gtt values (3);
1 row created.
SQL> insert into gtt values (4);
1 row created.
SQL>
SQL> select * from gtt;
X
----------
2
3
4
SQL>
SQL> print rc
X
----------
2