sql >> Database >  >> RDS >> Oracle

ROWID (orakel) - enig nut voor?

ROWID is de fysieke locatie van een rij. Daarom is het de snelste manier om een ​​rij te lokaliseren, sneller zelfs dan het opzoeken van een primaire sleutel. Het kan dus handig zijn bij bepaalde soorten transacties waarbij we enkele rijen selecteren, hun ROWID's opslaan en later de ROWID's gebruiken in where clausules voor DML tegen diezelfde rijen.

De Oracle SELECT ... FOR UPDATE-syntaxis gebruikt impliciet ROWID, wanneer we de vergrendelde rij bijwerken met WHERE CURRENT OF. Ook de EXCEPTIONS-tabel (waarnaar wordt verwezen bij het toepassen van beperkingen met de EXCEPTIONS INTO-clausule) heeft een kolom ROW_ID. Dit stelt ons in staat om snel de rijen te identificeren die onze beperking doorbreken.

Dat laatste voorbeeld wijst op een ander algemeen gebruik:wanneer we een generiek stuk code schrijven en een mechanisme nodig hebben voor het opslaan van UID's zonder zorgen over het gegevenstype, samengestelde sleutels, enz.

ROWNUM aan de andere kant is een pseudo-kolom die een rij tagt in een bepaalde resultatenset. Het heeft geen blijvende betekenis.

bewerken

De ROWID voor een bepaald record kan gedurende de levensduur van een systeem veranderen, bijvoorbeeld door het opnieuw opbouwen van een tabel. Ook als een record wordt verwijderd, kan een nieuw record die ROWID krijgen. Bijgevolg zijn ROWID's niet geschikt om op lange termijn als UID's te gebruiken. Maar ze zijn goed genoeg voor gebruik binnen een transactie.



  1. Hoe maak je een oracle.sql.ARRAY-object aan?

  2. maak een aangepaste functie voor datumverschil met uitzondering van weekends en feestdagen in oracle sql

  3. Hoe postgresql voor de eerste keer configureren?

  4. Hoe verander ik het datumformaat van MM/DD/YYYY naar YYYY-MM-DD in PL/SQL?