ROWID adalah lokasi fisik dari sebuah baris. Akibatnya, ini adalah cara tercepat untuk menemukan baris, bahkan lebih cepat daripada pencarian kunci utama. Jadi ini bisa berguna dalam jenis transaksi tertentu di mana kita memilih beberapa baris, menyimpan ROWID-nya dan kemudian menggunakan ROWID di where
klausa untuk DML terhadap baris yang sama.
Sintaks Oracle SELECT ... FOR UPDATE secara implisit menggunakan ROWID, ketika kami memperbarui baris yang dikunci menggunakan WHERE CURRENT OF. Juga tabel EXCEPTIONS (direferensikan saat menerapkan batasan dengan klausa EXCEPTIONS INTO) memiliki kolom ROW_ID. Ini memungkinkan kita untuk dengan cepat mengidentifikasi baris yang melanggar batasan kita.
Contoh terakhir itu menunjukkan penggunaan umum lainnya:ketika kita menulis beberapa bagian kode umum dan memerlukan mekanisme untuk menyimpan UID tanpa memperhatikan tipe data, kunci komposit, dll.
ROWNUM di sisi lain adalah kolom semu yang menandai baris dalam kumpulan hasil yang diberikan. Itu tidak memiliki signifikansi permanen.
edit
ROWID untuk catatan tertentu dapat berubah selama masa pakai sistem, misalnya melalui pembuatan ulang tabel. Juga jika satu catatan dihapus, catatan baru dapat diberikan ROWID itu. Akibatnya ROWID tidak cocok untuk digunakan sebagai UID dalam jangka panjang. Tapi mereka cukup baik untuk digunakan dalam transaksi.