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条件去查询其他字段