UROWID Internal

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/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/193161/viewspace-50344/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值