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.