有ROWID等于下面值,
AAAMlrAAIAAAAEkAAS
AAAMlrAAIAAAAEyAAS
AAAMlrAAIAAAAEcAAS
AAAMlrAAIAAAAEjAAS照理说,这几个ROWID不一样,
dbms_rowid.rowid_row_number(rowid)
函数返回值也不一样,但事实上这几个ROWID
都返回18.使得我想使用 dbms_rowid.rowid_row_number(rowid)
来唯一定位计划落空了.
哪位高人给解释一下原理.

解决方案 »

  1.   

    rowid中的ROW NUMBER,指的是该记录是其所在数据块(通常8K字节)中的第几条记录.
    这个函数返回的是记录在数据块中的相对位置.不会是连续值.
    如果删除过数据的话,很可能出现 1 3 4 5 这种情况.
      

  2.   

    mantisXF(枫の叶) ( ) 信誉:100  2007-8-13 22:19:20  得分: 0  
     
     
       
    rowid中的ROW NUMBER,指的是该记录是其所在数据块(通常8K字节)中的第几条记录.
    这个函数返回的是记录在数据块中的相对位置.不会是连续值.
    如果删除过数据的话,很可能出现 1 3 4 5 这种情况.  
     
    也就是说在不同的数据块中,ROW NUMBER 相同是正常的了?
      

  3.   

    首先你要搞清楚rowid是由什么组成的.多少个字节.
    你就明白了其中的问题.