ITPub博客

首页 > 数据库 > Oracle > Oracle中rownum与rowid使用上的问题

Oracle中rownum与rowid使用上的问题

原创 Oracle 作者:uuxa 时间:2009-08-04 14:09:06 0 删除 编辑

问题描述:

使用rownum反回一条记录时,返回结果发生变化,与一个月前不同了。这其间数据库未恢复过。

[@more@]

如:

select rownum, a.* from sometab a where rownum=1

上面的查询结果,一般来说返回的值应当是固定的。原因是rowid值是固定的。

rowid是记录表中存储的记录在数据文件中的存储位置。

它的结构如下:

8以上版本的ROWID组成
OOOOOOFFFBBBBBBRRR
8以下ROWID组成(也叫受限Rowid)
BBBBBBBB.RRRR.FFFF
其中,O是对象ID,F是文件ID,B是块ID,R是行ID
如果我们查询一个表的ROWID,根据其中块的信息,可以知道该表确切占用了多少个块,进而知道占用了多少数据空间(此数据空间不等于表的分配空间)

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7416120/viewspace-1024873/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    111
  • 访问量
    301512