ITPub博客

首页 > Linux操作系统 > Linux操作系统 > UROWID Internal

UROWID Internal

原创 Linux操作系统 作者:NinGoo 时间:2019-05-13 09:51:07 0 删除 编辑

UROWID(Universal Rowid)表示一行数据的逻辑地址。一般情况下,索引组织表(IOT)和远程数据库(可以是非Oracle数据库)中的表需要用到UROWID。


UROWID的子类型

  • 物理的(实际上就是物理ROWID加一个子类型标记字节)
  • 逻辑的(基于主键,用于IOT)
  • 远程的(其他库中的表)

该数据类型的内部类型代码是208,这可以通过dump函数看到。

UROWID的存储结构

第一个字节表示子类型,1 物理UROWID,2 逻辑UROWID,3 远程UROWID。

对于物理UROWID,从第二字节起,就是一个物理rowid,分别为:
object#(4),file#(2),block#(4),slot#(2)

对于逻辑UROWID,从第二字节起,分别为:
dba length(1),dba,slot length(1),slot,primary key lenth(1),primary key

对于远程UROWID,从第二字节起,分别为:
未压缩部分的长度,未压缩部分,压缩部分

附:Oracle数据类型的内部代码

Oracle并不在数据行中存储每个列的数据类型,类型信息只保存在数据字典COL$中。

Datatype CodeDatatype Name
114BFILE
96CHAR, NCHAR
12DATE
183INTERVAL DAY TO SECOND REF
182INTERVAL YEAR TO MONTH REF
8LONG
24LONG RAW
2NUMBER
23RAW
111REF
113REF BLOB
112REF CLOB, REF NCLOB
11ROWID
180TIMESTAMP
231TIMESTAMP WITH LOCAL TIME ZONE
181TIMESTAMP WITH TIME ZONE
208UROWID
108User-defined type (object type, VARRAY, nested table)
1VARCHAR2, NVARCHAR2
106MLSLABEL

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/193161/viewspace-50344/,如需转载,请注明出处,否则将追究法律责任。

上一篇: Oracle常用dump命令
请登录后发表评论 登录
全部评论

注册时间:2004-12-07

  • 博文量
    200
  • 访问量
    133169