在數據庫中的每一行都有一個地址。然而,一些錶行的地址不是物理或永久的,或者不是ORACLE數據庫生成的。
例如,索引組織錶行地址存儲在索引的葉子,可以移動。
例如,外部表的ROWID(如通過網關訪問DB2表)不是標準的ORACLE的rowid。
ORACLE使用通用的ROWID(UROWIDs)的存儲地址的索引組織表和外表。索引組織表有邏輯urowids的,和國外表的外urowids,。UROWID這兩種類型的存儲在ROWID僞(堆組織的表的物理行id)。
創建基於邏輯的rowid在表中的主鍵。邏輯的rowid不會改變,只要主鍵不改變。索引組織表的ROWID僞UROWID數據類型。你可以訪問這個僞列,你會堆組織表的ROWID僞(即使用一個SELECT ...ROWID語句)。如果你想存儲的rowid索引組織表,那麼你就可以定義一列的表型UROWID到列檢索值的ROWID僞。
ROWID 解釋
數據對象編號 文件編號 塊編號 行編號
Select ename,dbms_rowid.ROWID_OBJECT(ROWID) obj#,dbms_rowid.ROWID_RELATIVE_FNO(ROWID) file#,dbms_rowid.rowid_BLOCK_NUMBER(rowid) block#,dbms_rowid.ROWID_ROW_NUMBER(ROWID) ROW# from scott.emp;
驗證上圖: