在数据表中每一行所保存的记录,实际上Oracle都会默认为每条记录分配一个唯一的地址编号,而这个地址编号就是通过ROWID进行表示的,ROWID本身是一个数据的伪列,所有的数据都利用ROWID进行数据定位。
SYS@PRODCDB> select rowid, deptno, dname, loc from scott.dept;
ROWID DEPTNO DNAME LOC
------------------ ---------- -------------- -------------
AAAWeDAAJAAAACTAAA 10 ACCOUNTING NEW YORK
AAAWeDAAJAAAACTAAB 20 RESEARCH DALLAS
AAAWeDAAJAAAACTAAC 30 SALES CHICAGO
AAAWeDAAJAAAACTAAD 40 OPERATIONS BOSTON
从上面的语句结果中可以看出,每一行的ROWID是不同的,都表示唯一的一条记录,以期中一条ROWID为例,分解ROWID的组成部分:
ROWID: AAAWeDAAJAAAACTAAA
数据对象号(data object number):AAAWeD
相对文件号(relative file number):AAJ
数据块号(block number):AAAACT
数据行号(row number):AAA
通过以下的函数可以从一个ROWID中取得相对应的数据:
dbms_rowid.rowid_object(rowid)----取得数据对象号
dbms_rowid.rowid_relative_fno(rowid)----取得相对文件号
dbms_rowid.rowid_block_number(rowid)----取得数据块号
dbms_rowid.rowid_row_number(rowid)----取得数据行号
SYS@PRODCDB> select rowid,
2 dbms_rowid.rowid_object(rowid) object_no,
3 dbms_rowid.rowid_relative_fno(rowid) file_no,
4 dbms_rowid.rowid_block_number(rowid) block_no,
5 dbms_rowid.rowid_row_number(rowid) row_no from scott.dept;
ROWID OBJECT_NO FILE_NO BLOCK_NO ROW_NO
--------------------------------- ---------------- ------------ --------------- -------------
AAAWeDAAJAAAACTAAA 92035 9 147 0
AAAWeDAAJAAAACTAAB 92035 9 147 1
AAAWeDAAJAAAACTAAC 92035 9 147 2
AAAWeDAAJAAAACTAAD 92035 9 147 3
SYS@PRODCDB> select rowid, deptno, dname, loc from scott.dept;
ROWID DEPTNO DNAME LOC
------------------ ---------- -------------- -------------
AAAWeDAAJAAAACTAAA 10 ACCOUNTING NEW YORK
AAAWeDAAJAAAACTAAB 20 RESEARCH DALLAS
AAAWeDAAJAAAACTAAC 30 SALES CHICAGO
AAAWeDAAJAAAACTAAD 40 OPERATIONS BOSTON
从上面的语句结果中可以看出,每一行的ROWID是不同的,都表示唯一的一条记录,以期中一条ROWID为例,分解ROWID的组成部分:
ROWID: AAAWeDAAJAAAACTAAA
数据对象号(data object number):AAAWeD
相对文件号(relative file number):AAJ
数据块号(block number):AAAACT
数据行号(row number):AAA
通过以下的函数可以从一个ROWID中取得相对应的数据:
dbms_rowid.rowid_object(rowid)----取得数据对象号
dbms_rowid.rowid_relative_fno(rowid)----取得相对文件号
dbms_rowid.rowid_block_number(rowid)----取得数据块号
dbms_rowid.rowid_row_number(rowid)----取得数据行号
SYS@PRODCDB> select rowid,
2 dbms_rowid.rowid_object(rowid) object_no,
3 dbms_rowid.rowid_relative_fno(rowid) file_no,
4 dbms_rowid.rowid_block_number(rowid) block_no,
5 dbms_rowid.rowid_row_number(rowid) row_no from scott.dept;
ROWID OBJECT_NO FILE_NO BLOCK_NO ROW_NO
--------------------------------- ---------------- ------------ --------------- -------------
AAAWeDAAJAAAACTAAA 92035 9 147 0
AAAWeDAAJAAAACTAAB 92035 9 147 1
AAAWeDAAJAAAACTAAC 92035 9 147 2
AAAWeDAAJAAAACTAAD 92035 9 147 3
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30192548/viewspace-2123853/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/30192548/viewspace-2123853/