关于oracle的rowid

时间:2021-04-28 04:53:13

oracle数据库中表的每一行(元组)均有一个rowid,它是数据的详细地址,通过rowid,oracle可以快速的定位某行具体的数据的位置。

ROWID可以分为物理rowid和逻辑rowid两种。普通的堆表中的rowid是物理rowid,索引组织表(IOT)的rowid是逻辑rowid。oracle提供了一种urowid的数据类型,同时支持物理和逻辑rowid,而使用较多的是物理rowid

物理rowid又分为扩展rowid(extended rowid)和限制rowid(restricted rowid)两种格式。限制rowid主要是oracle7及其以前的rowid格式,现在已经不再使用,保留该类型只是为了兼容性。现在物理rowid一般是指扩展rowid格式

rowid的格式如下:(一种基于base64的编码)由data_object_id#+rfile#+block#+row#组成

数据对象编号         文件编号         块编号            行编号
OOOOOO             FFF               BBBBBB        RRR

可以通过sql语句查询,也可以把它作为where条件去查询其他字段