sql >> Databasteknik >  >> RDS >> Oracle

INFOGA med BESTÄLLNING på Oracle

Du kan inte kontrollera tillförlitligt i vilken ordning Oracle hämtar raden i en tabell utan en ORDER BY .

Dessutom utan /*+APPEND*/ ledtråd, Oracle kommer att lagra raderna fysiskt i en högtabell där det finns plats, vilket kanske inte finns i slutet av tabellen! Du kanske tror att Oracle infogar dem sekventiellt men all DML eller samtidig aktivitet (2+ sessioner infogning) kan ge en annan fysisk organisation.

Du kan använda en INDEX ORGANIZED-tabell för att lagra raderna i PK-ordningen. De flesta enkla frågorna därefter i den tabellen kommer att producera en sorterad uppsättning rader. Detta skulle dock inte garantera att Oracle kommer att välja raderna i den ordningen om du inte anger en ORDER BY (beroende på frågan och åtkomstvägen kan raderna komma i valfri ordning).

Du kan också använda en vy med en beställning av, detta är förmodligen din bästa insats om du inte kan röra applikationen (byt namn på tabellen, skapa en vy med namnet på tabellen, låt applikationen tro att den frågar bordet). Jag vet inte om det är genomförbart i ditt fall.



  1. Hur infogar man en fil i Oracle Database?

  2. SQLite Utom

  3. "Kan inte släppa utlösaren" Fel när du försöker släppa en inloggningsutlösare? Prova detta.

  4. Dynamisk uppdateringssats med variabla kolumnnamn