dbms_rowid

来源:互联网 发布:苏联和美国知乎 编辑:程序博客网 时间:2024/06/06 09:47

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

0 0
原创粉丝点击