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 => );