Oracle
 sql >> Baza danych >  >> RDS >> Oracle

INSERT with ORDER w Oracle

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak uciec ze znaków <,> i &do encji HTML w Oracle PL/SQL

  2. Sql*plus zawsze zwraca kod wyjścia 0?

  3. automatyzacja wyrocznia skryptu wycofywania

  4. Parametry połączenia Oracle bez pliku tnsnames.ora

  5. Jak uzyskać dostęp do bazy danych Oracle przez sieć?