有ROWID等于下面值,
AAAMlrAAIAAAAEkAAS
AAAMlrAAIAAAAEyAAS
AAAMlrAAIAAAAEcAAS
AAAMlrAAIAAAAEjAAS照理说,这几个ROWID不一样,
dbms_rowid.rowid_row_number(rowid)
函数返回值也不一样,但事实上这几个ROWID
都返回18.使得我想使用 dbms_rowid.rowid_row_number(rowid)
来唯一定位计划落空了.
哪位高人给解释一下原理.
AAAMlrAAIAAAAEkAAS
AAAMlrAAIAAAAEyAAS
AAAMlrAAIAAAAEcAAS
AAAMlrAAIAAAAEjAAS照理说,这几个ROWID不一样,
dbms_rowid.rowid_row_number(rowid)
函数返回值也不一样,但事实上这几个ROWID
都返回18.使得我想使用 dbms_rowid.rowid_row_number(rowid)
来唯一定位计划落空了.
哪位高人给解释一下原理.
这个函数返回的是记录在数据块中的相对位置.不会是连续值.
如果删除过数据的话,很可能出现 1 3 4 5 这种情况.
rowid中的ROW NUMBER,指的是该记录是其所在数据块(通常8K字节)中的第几条记录.
这个函数返回的是记录在数据块中的相对位置.不会是连续值.
如果删除过数据的话,很可能出现 1 3 4 5 这种情况.
也就是说在不同的数据块中,ROW NUMBER 相同是正常的了?
你就明白了其中的问题.