declare cc TEMP_OO; dd TEMP_TT; QQ TEMP_TT; CURSOR A IS select A, B from table(QQ) order by 2; begin DD := TEMP_TT(); FOR I IN 1 .. 5 LOOP cc := TEMP_OO(I, 6 - I); DD.EXTEND; DD(DD.COUNT) := CC; END LOOP; SELECT TEMP_OO(A, B) BULK COLLECT INTO QQ FROM TABLE(DD) ORDER BY B; FOR C IN A loop dbms_output.put_line(C.A || ':' || C.B); end loop; end;