Loop through pre defined values
You could do this, though probably not as slick as you'd like:
declare
type nt_type is table of number;
nt nt_type := nt_type (1, 3, 5);
begin
for i in 1..nt.count loop
dbms_output.put_line(nt(i));
end loop;
end;
If you create a type in the database:
create type number_table is table of number;
then you can do this:
begin
for r in (select column_value as var from table (number_table (1, 3, 5))) loop
dbms_output.put_line(r.var);
end loop;
end;
Also, as A.B.Cade has commented below there are database types that come with Oracle that you can use, such as sys.dbms_debug_vc2coll
:
begin
for r in (select column_value as var from table (dbms_debug_vc2coll (1, 3, 5))) loop
dbms_output.put_line(r.var);
end loop;
end;
This comes from A.B.Cade's comment on the currently accepted answer, but I find it a lot cleaner and deserving of more attention:
BEGIN
FOR i IN (SELECT column_value FROM table(sys.dbms_debug_vc2coll(1, 3, 5))) LOOP
dbms_output.put_line(i.column_value);
END LOOP;
END;