dbms_rowid 用於在pl/sql和sql語句中用於取得rowid相關的信息,和建立 rowid;
可以取得行所在的文件號,行所在文件的數據塊號,行所在數據塊的行號,以及數據庫對象號等信息;
– 1,rowid_create
/*
該函數用於建立rowid
0–受限
1–擴展
*/
dbms_rowid.rowid_create
(rowid_type => ,object_number => ,relative_fno => ,block_number => ,row_number => )
return rowid;
declare
v_rowid rowid;
begin
v_rowid:= dbms_rowid.rowid_create(1,12,2541,521,1235);
dbms_output.put_line(v_rowid);
end;
– 2,rowid_info
/*
該過程用於取得rowid信息
*/
dbms_rowid.rowid_info(rowid_in,
rowid_type => ,object_number => ,relative_fno => ,block_number => ,row_number => );
declare
rowid_type number(10);
object_number number(10);
relative_fno number(10);
block_number number(10);
row_number number(10);
begin
dbms_rowid.rowid_info('AAAAAMAntAAAAIJATT',rowid_type ,object_number ,relative_fno ,block_number ,row_number );
dbms_output.put_line(rowid_type);
dbms_output.put_line(object_number);
dbms_output.put_line(relative_fno);
dbms_output.put_line(block_number);
dbms_output.put_line(row_number);
end;
– 3,rowid_type
/*
該函數用於返回特定的rowid類型
*/
select dbms_rowid.rowid_type(‘AAAAAMAntAAAAIJATT’) from dual;
– 4,rowid_object
/*
該函數用於返回特定的rowid的數據對象號
*/
select dbms_rowid.rowid_object(‘AAAAAMAntAAAAIJATT’) from dual;
– 5,rowid_relative_fno
/*
該函數用於返回特定的rowid的文件號
*/
select dbms_rowid.rowid_relative_fno(‘AAAAAMAntAAAAIJATT’) from dual;
– 6,rowid_block_number
/*
該函數用於返回特定的rowid的數據塊號
*/
select dbms_rowid.rowid_block_number(‘AAAAAMAntAAAAIJATT’) from dual;
– 7,rowid_row_number
/*
該函數用於返回特定的rowid的數據塊所對應的行號
*/
select dbms_rowid.rowid_row_number(‘AAAAAMAntAAAAIJATT’) from dual;
– 8,rowid_to_absolute_fno
/*
該函數用於返回特定的rowid的所對應的絕對文件號
schema_name –指定表的方案名
object_name–指定表名
*/
dbms_rowid.rowid_to_absolute_fno(row_id => ,schema_name => ,object_name => );
declare
v_rowid rowid;
abs_fno int ;
begin
select rowid into v_rowid from emp where empno = 8 ;
abs_fno:= dbms_rowid.rowid_to_absolute_fno(v_rowid,’SCOTT’,’EMP’);
dbms_output.put_line(v_rowid || ‘的絕對文件號是:’ || abs_fno );
end;
– 9,rowid_to_extended
/*
該函數用於將受限的rowid 轉化爲擴展的rowid
schema_name –指定表的方案名
object_name–指定表名
conversion_type 擴展的類型
*/
dbms_rowid.rowid_to_extended(old_rowid =>,schema_name => ,object_name => ,conversion_type => );
– 10,rowid_to_restricted
/*
該函數用於將擴展的rowid 轉化爲受限的rowid
conversion_type=0;
*/
dbms_rowid.rowid_to_restricted(old_rowid => ,conversion_type => );
– 11,rowid_verify
/*
該函數用於檢驗是否可以將受限的rowid 轉化爲可擴展的rowid
0–可以
1–不能轉化
*/
dbms_rowid.rowid_verify(rowid_in => ,schema_name => ,object_name => ,conversion_type => );