ドキュメントのどこにも保証があるとは思いません。 データが返される順序。
古い
安全のため、クエリ結果を並べ替える場合は、クエリでいつも行うように、明示的なORDERBYを指定する必要があります。
私はあなたの関数を取り、1000万回の反復を実行して、暗黙の順序が破られたかどうかを確認したと言いました。そうではありませんでした。
SQL> begin
2 for i in 1 .. 10000000 loop
3 for j in ( SELECT a.*, rownum as rnum FROM table(temp_func()) a ) loop
4
5 if j.x <> j.rnum then
6 raise_application_error(-20000,'It broke');
7 end if;
8 end loop;
9 end loop;
10 end;
11 /
PL/SQL procedure successfully completed.