1,
ROWID_CREATE函数(返回一个基于单独行的rowid)
语法:
DBMS_ROWID.ROWID_CREATE (
rowid_type IN NUMBER,
object_number IN NUMBER,
relative_fno IN NUMBER,
block_number IN NUMBER,
row_number IN NUMBER)
参数:
rowid_type:rowid类型(restricted或者extended)。设置rowid_type为0时,代表restricted ROWID(此时,将忽略参数object_number):设置rowid_type为1时,代表extended ROWID。
object_number:数据对象编号(仅restricted类型rowid可用)。
relative_fno:所在数据文件编号。
block_number:该数据文件中的数据块编号。
row_number:在该块中的行编号。
SQL> select dbms_rowid.rowid_relative_fno(rowid) file_id,dbms_rowid.rowid_block_number(rowid) block_id from t71 where id=1;
FILE_ID BLOCK_ID
---------- ----------
4 327499
查看object_number:
SQL> select distinct dbms_rowid.rowid_object(ROWID) object_id from t71;
OBJECT_ID
----------
94361
举例:
创建restricted ROWID
SQL> select dbms_rowid.rowid_create(0,94361,4,327499,1) from dual;
DBMS_ROWID.ROWID_C
------------------
0004FF4B.0001.0004
创建extended ROWID
SQL> select dbms_rowid.rowid_create(1,94361,4,327499,1) from dual;
DBMS_ROWID.ROWID_C
------------------
AAAXCZAAEAABP9LAAB
2,
ROWID_OBJECT函数(该函数返回扩展ROWID的数据对象编号,如果输入的ROWID类型为restricted,则该函数返回值为0)
语法:
DBMS_ROWID.ROWID_OBJECT (rowid_id IN ROWID)
举例:
SQL> select distinct dbms_rowid.rowid_object(ROWID) object_id from t71;
OBJECT_ID
----------
94361