从Oracle8开始,Oracle引入扩展ROWID的概念。
扩展ROWID使用base-64,占用18位
格式:OOOOOOFFFBBBBBBRRR:
-OOOOOO: (1-6位),代表OBJECT 号
-FFF:(7-9位),表空间相对文件号
-BBBBBB:(10-15)包含行数据的数据块号
-RRR: (16-18)块中的行号
你可以用DBMS_ROWID包来转换和管理rowid
给你做个范例:
SQL> set timing on
SQL> create table test (id number);
表已创建。
已用时间:00: 00: 00.01
SQL> insert into test values(1);
已创建 1 行。
已用时间:00: 00: 00.30
SQL> commit;
提交完成。
已用时间:00: 00: 00.10
SQL>
SQL> select substr(rowid,1,6) "Object",
2 substr(rowid,7,3) "File",
3 substr(rowid,10,6) "Block",
4 substr(rowid,16,3) "Row"
5from test;
Object
File Block
Row
------------------------ ------------ ------------------------ ------------
AAAJXa
AAJ
AAACmB
AAA
已用时间:00: 00: 00.80
SQL>
|