Уже говорилось, что Oracle может выдавать вам строки в любом порядке, в котором они хотят, если вы не укажете предложение ORDER BY. Указывать порядок будет, если вы не укажете предложение ORDER BY, бессмысленно. И полагаться на это в своем коде - это «шаг, ограничивающий карьеру».
Простой пример:
SQL> create table t as select level id from dual connect by level <= 10
2 /
Tabel is aangemaakt.
SQL> select id from t
2 /
ID
----------
1
2
3
4
5
6
7
8
9
10
10 rijen zijn geselecteerd.
SQL> delete t where id = 6
2 /
1 rij is verwijderd.
SQL> insert into t values (6)
2 /
1 rij is aangemaakt.
SQL> select id from t
2 /
ID
----------
1
2
3
4
5
7
8
9
10
6
10 rijen zijn geselecteerd.
И это только после простого удаления + вставки. И есть множество других возможных ситуаций. Параллельное выполнение, разбиение, индексирование организованных таблиц, и это лишь некоторые из них.
Итог, как уже хорошо сказал ammoQ: если вам нужно отсортировать строки, используйте предложение ORDER BY.