首页  >  文章  >  数据库  >  使用rowid和rownum获取记录时要注意的问题

使用rowid和rownum获取记录时要注意的问题

WBOY
WBOY原创
2016-06-07 16:44:591172浏览

我们知道,rowid和rownum在Oracle中都是可以被当做伪劣使用的,主要用来定位表中特定的记录,但它们是有区别的,rowid是和行记录

在Oracle 8以下,rowid(也叫受限rowid)为:FFFF.BBBBBBBB.RRRR,,占用6个字节(10bit file# 22bit 16bit),但是,为了扩充的需要,如数据文件的扩充,现在的rowid改为:OOOOOOFFFBBBBBBRRR,占用10个字节(32bit 10bit rfile# 22bit 16bit)。其中,O是Object号,F是File号,B是Block号,R是Row号。由于rowid的组成从file#变成了rfile#,所以数据文件数的限制也从整个库不能超过1023个变成了每个表空间不能超过1023个数据文件这里的object_id,是与段物理存储位置相关的一个信息,因为一个段对象只可能在一个表空间上,object_id能唯一确认ts#,而object_id rfile#就能最终定位到该rowid在哪个确定的物理数据文件上

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn