ROWID伪列

ROWID伪列概念:

  在数据表中每一行所保存的记录,oracle会为每条记录分配一个唯一的地址编号,这个编号就是通过ROWID表示的。

  所有的数据都利用ROWID进行定位。

观察rowid的存在

SQL> select rowid,deptno,dname,loc from dept;

ROWID               DEPTNO DNAME         LOC
------------------ ---------- -------------- -------------
AAAR3vAAEAAAACHAAA 10 ACCOUNTING NEW YORK
AAAR3vAAEAAAACHAAB 20 RESEARCH DALLAS
AAAR3vAAEAAAACHAAC 30 SALES CHICAGO
AAAR3vAAEAAAACHAAD 40 OPERATIONS BOSTON

  以deptno为10的rowid为例:

  •   数据对象号:AAAR3v
  •   相对文件号:AAE
  •   数据块号:AAAACH
  •   数据行号: AAA

通过函数定位出rowid的映射位置:

  

select rowid,
dbms_rowid.rowid_object(rowid) 数据对象号,
dbms_rowid.rowid_relative_fno(rowid) 相对文件号,
dbms_rowid.rowid_block_number(rowid) 数据块号,
dbms_rowid.rowid_row_number(rowid) 数据行号,
deptno,
dname,
loc
from dept;

结果:

ROWID伪列

上一篇:【jQuery 分页】jQuery分页功能的实现


下一篇:第十篇:DRF之实现JWT认证