oracle rowid 的含義

531968912發表於2016-09-18
02:23:38 scott@prod> select rowid,deptno,dname,loc from dept;


ROWID                     DEPTNO DNAME          LOC
------------------ ------------- -------------- -------------
AAAVRCAAEAAAACHAAA            10 ACCOUNTING     NEW YORK
AAAVRCAAEAAAACHAAB            20 RESEARCH       DALLAS
AAAVRCAAEAAAACHAAC            30 SALES          CHICAGO
AAAVRCAAEAAAACHAAD            40 OPERATIONS     BOSTON




AAAVRC AAE AAAACH AAD
這個是64進位制的數
object_id AAAVRC  10進位制=21*64^2+17*64^1+2*64^0=86016+1088+2=86106
file#     AAE     10進位制=4
block#    AAAACH  10進位制=2*64^1+7=135
row       AAD     10進位制=3


我們也可以使用oracle提供的dbms_rowid的包來進行查詢
select dbms_rowid.rowid_object('AAAVRCAAEAAAACHAAD') data_object_id#,
       dbms_rowid.rowid_relative_fno('AAAVRCAAEAAAACHAAD') rfile#,
       dbms_rowid.rowid_block_number('AAAVRCAAEAAAACHAAD') block#,
       dbms_rowid.rowid_row_number('AAAVRCAAEAAAACHAAD') row# from dual;
DATA_OBJECT_ID#        RFILE#        BLOCK#          ROW#
--------------- ------------- ------------- -------------
          87106             4           135             3

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25462274/viewspace-2125106/,如需轉載,請註明出處,否則將追究法律責任。

相關文章