Trong Oracle database, mỗi row trong table đều được ghi lại địa chỉ trong một cột giả (pseudocolumn) gọi là ROWID. Thông thường, ROWID xác định mỗi một row riêng biệt trong table (trừ trường hợp cluster table), ghi lại cách thức tổ chức dữ liệu và là cách truy cập dữ liệu nhanh nhất có thể.

 

ROWID là 1 chuỗi ký tự, bao gồm các thông tin:

  • Data file number
  • Block number
  • Vị trí của row trong block
  • Data object number (tương ứng với cột DATA_OBJECT_ID trong dba_objects

VD:

 

 

Để phân tích nội dung rowid, ta dùng package DBMS_ROWID

 

 

Như vậy, row dữ liệu nhân viên 101 nằm ở datafile số 5, data block 219 và ở vị trí thứ 23 trong block.

 

Do ROWID là cột giả nên ta chỉ có thể query mà không thay đổi được giá trị. Mặc dù ROWID mang tính chất unique cho từng row, tuy nhiên ta không nên sử dụng giá trị này như là khóa chính của table, vì qua 1 số thao tác như export/import dùng Data Pump, enable row movement/shrink table…, ROWID có thể thay đổi.