Możesz nie niezawodnie kontrolować, w jakiej kolejności Oracle pobiera wiersz tabeli bez ORDER BY
.
Ponadto bez /*+APPEND*/
wskazówka, Oracle będzie fizycznie przechowywać wiersze w tabeli sterty, w której jest miejsce, które może nie znajdować się na końcu tabeli! Możesz myśleć, że Oracle wstawia je sekwencyjnie, ale każda DML lub jednoczesna aktywność (wstawianie ponad 2 sesji) może spowodować inną fizyczną organizację.
Możesz użyć tabeli INDEX ORGANIZOWANE do przechowywania wierszy w kolejności PK. Większość prostych zapytań później w tej tabeli wygeneruje posortowany zestaw wierszy. Nie gwarantuje to jednak, że Oracle wybierze wiersze w tej kolejności, jeśli nie określisz ORDER BY (w zależności od zapytania i ścieżki dostępu wiersze mogą występować w dowolnej kolejności).
Możesz również użyć widoku z zamówieniem według, jest to prawdopodobnie najlepsza opcja, jeśli nie możesz dotknąć aplikacji (zmień nazwę tabeli, utwórz widok z nazwą tabeli, pozwól aplikacji myśleć, że wysyła zapytanie do tabeli). Nie wiem, czy w twoim przypadku jest to wykonalne.