暂无图片
Oracle基本数据类型存储格式浅析——逻辑ROWID
最近更新:2022-03-11 14:21:05

Oracle的文档上没有介绍逻辑ROWID的编码规则,而且通过DUMP的结果也很难反推出编码规则。因此,本文只简单讨论一下逻辑ROWID的存储。 下面来看例子。

SQL> create table test_index (id number primary key, name varchar2(20)) organization index; 
表已创建。 
SQL> insert into test_index values (1, 'a'); 
已创建 1 行。 
SQL> commit; 
提交完成。 
SQL> col dump_rowid format a60
SQL> select rowid, dump(rowid) dump_rowid from test_index; 
ROWID                       DUMP_ROWID
--------------------------- ----------------------------------------
*BAFAB4wCwQL+               Typ=208 Len=10: 2,4,1,64,7,140,2,193,2,254 


逻辑ROWID的DUMP结果前两位都是2和4,最后一位都是254,(我还没有发现其他的情况),由于逻辑ROWID和主键的值有关,所以长度是不定的,因此应该是用来表示开始和结束的。 第3、4位和物理ROWID一样,表示的是相对表空间的数据文件号乘以64的值。

......