ROWID是伪列,是内部算法计算出来的,Oracle索引可以使用它。数据表中并没有存储rowid,每一行的rowid是根据该行的物理位置计算出来的,我们得到一个rowid可以获得该行的所在的物理位置,可以快速定位该行。同样,我们可以将指定的相关的数字构造出一个rowid。
通过下列语句我们可以构建ROWID:
select dbms_rowid.rowid_create(1,57029,10,48,1000) from dual;
其中:
dbms_rowid.rowid_create(1,57029,10,48,1000)中的1代表新版本的ROWID,64进制,18位。0代表老版本的ROWID,16进制,16位:
select dbms_rowid.rowid_create(0,57029,10,48,1000) from dual;
转载于:https://blog.51cto.com/6635666/1141764