关于oracle的rowid

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

时间: 2024-10-26 22:04:17

关于oracle的rowid的相关文章

浅谈oracle中rowid和rownum

[ 概要 ] 刚刚接触oracle的同学可能常常会被rowid和rownum这两个词弄混, 弄清楚这两个家伙对于我们写sql会有很大的帮助, 下面偶就抛砖引玉, 简单地谈谈他们之间的区别吧. [ 比较 ] rowid和rownum都是oracle中的伪列, 但他们还是存在本质区别: rowid: 是物理地址, 用于定位数据表中数据的位置, 它是唯一的且不会改变. rownum: 是根据查询的结果集给每行分配的一个逻辑编号, 查询结果不同, rownum自然不同. 对于同一条记录, 查询条件不同,

【oracle】rowid解读

rowid记录数据的物理位置,通过rowid可以知道数据存放在那个数据文件的第几个块第几行. --------------------- extended rowid format  ---------------------------------------------------- AAAEoF           AAE             AAAACL    AAA ---------------------------------------------------- data 

Oracle用rowid删除同一张表的重复记录

经常有这样一个业务场景,我们在同一张表中有重复的记录,我们要删除重复的记录,这篇文章就是用来解决这个问题的,用的方法是我目前遇到的效率最高的方法(如果有更好的方法欢迎网友提供).这个方法会用到了rowid,下面简单介绍一下rowid的定义 1.ROWID定义 ROWID:数据库中行的全局唯一地址 对于数据中的每一行,rowid伪列返回行的地址.rowid值主要包含以下信息: 对象的数据对象编号 该行所在的数据文件中的数据块 该行中数据块的位置(第一行是0) 数据行所在的数据文件(第一个文件是1)

Oracle的rowid

ROWID是数据的详细地址,通过rowid,oracle可以快速的定位某行具体的数据的位置. ROWID可以分为物理rowid和逻辑rowid两种.普通的堆表中的rowid是物理rowid,索引组织表(IOT)的rowid是逻辑rowid.oracle提供了一种urowid的数据类型,同时支持物理和逻辑rowid.本文主要关注物理rowid 物理rowid又分为扩展rowid(extended rowid)和限制rowid(restricted rowid)两种格式.限制rowid主要是orac

【oracle】rowid转换rdba,rdba转换为file#block#

 ************************************************************************   ****原文:blog.csdn.net/clark_xu 徐长亮的专栏 ************************************************************************  -- 1 rowid和rdba的转换 --数据的存储属性rowid --数据文件file# --数据库对象obj# --数

Oracle中的rowid

ROWID是ORACLE中的一个重要的概念.用于定位数据库中一条记录的一个相对唯一地址值.通常情况下,该值在该行数据插入到数据库表时即被确定且唯一.ROWID它是一个伪列,它并不实际存在于表中.它是ORACLE在读取表中数据行时,根据每一行数据的物理地址信息编码而成的一个伪列.所以根据一行数据的ROWID能找到一行数据的物理地址信息.从而快速地定位到数据行.数据库的大多数操作都是通过ROWID来完成的,而且使用ROWID来进行单记录定位速度是最快的. 要理解索引,必须先搞清楚ROWID. B-T

oracle中的rowid和数据行的结构

在oracle数据库系统中每一行都有一个rowid,oracle数据库系统就是利用rowid来定位数据行的.rowid也是oracle中内置的一个标量数据类型 rowid有一下特点; 是数据库中每一行的唯一标识 并不是显示的存储某一列的值 可以用来定位行,虽然没有直接给出行的物理地址 提供了访问一张表中数据行的最快机制 1)rowid有两种类型:限制rowid和扩展rowid 一.扩展rowid 扩展rowid是oracle8i之后的版本中引入的,其结构如下: 数据对象号+相对文件号+块号+行号

Oracle ROWID与UROWID

Oracle使用rowid数据类型存储行地址,rowid可以分成两种,分别适于不同的对像 Physical rowids:存储ordinary table,clustered table,table partition and subpartition,indexe,index partition and subpartition Logical rowids : 存储IOT的行地址 另一种rowid类型叫universal rowed(UROWID),支持上述physical rowid和lo

Rowid和Rownum的区别

Rowid和Rownum对于数据库开发人员来说基本很少用到,因为在企业数据库开发中大多都是进行数据批处理,但是对于其他数据库人员来说还是会用到的.rowid和rownum都是虚列,但含义完全不同.rowid是物理地址,用于定位Oracle中具体数据的物理存储位置,而rownum则是sql的输出结果排序.通俗的讲:rowid是相对不变的,rownum会变化,尤其是使用order by的时候. rowid 用于定位数据表中某条数据的位置,是唯一的.也不会改变 rownum 表示查询某条记录在整个结果