Tôi không nghĩ rằng có bất kỳ chỗ nào trong tài liệu đảm bảo thứ tự mà dữ liệu sẽ được trả lại.
Có một Chuỗi Tom Kyte từ năm 2003 (so might lỗi thời) trong đó nói rằng việc dựa vào thứ tự ngầm định sẽ không được khuyến khích, vì những lý do tương tự như bạn sẽ không dựa vào thứ tự trong SQL thông thường.
Để an toàn, bạn nên làm như mọi khi trong một truy vấn, nêu một LỆNH BẰNG CÁCH rõ ràng, nếu bạn muốn các kết quả truy vấn được sắp xếp theo thứ tự.
Đã nói rằng tôi đã sử dụng chức năng của bạn và chạy 10 triệu lần lặp, để kiểm tra xem thứ tự ngầm định đã bao giờ bị phá vỡ hay chưa; nó không phải.
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.