网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>数据库技术>>Oracle技术>>Oracle开发>查看文档  
  巧用dbms_rowid包获得rowid的详细信息     
  文章作者:未知  文章来源:赛迪网技术社区  
  查看:105次  录入:管理员--2008-05-16  
 

【赛迪网-it技术报道】我们知道,rowid中包含了记录的详细信息,通过dbms_rowid包可以很轻松地获得这些信息.本文将通过一个自定义函数详细介绍这个package的使用。

create or replace function get_rowid
(l_rowid in varchar2)
return varchar2
is
ls_my_rowid  varchar2(200);          
rowid_type  number;          
object_number  number;          
relative_fno  number;          
block_number  number;          
row_number  number;  
begin
dbms_rowid.rowid_info(l_rowid,rowid_type,
object_number,relative_fno, block_number, row_number);          
ls_my_rowid := 'object# is      :'||to_char(object_number)||chr(10)||
'relative_fno is :'||to_char(relative_fno)||chr(10)||
'block number is :'||to_char(block_number)||chr(10)||
'row number is   :'||to_char(row_number);
return ls_my_rowid ;
end;          
/

其它的用法:

[oracle@jumper tools]$ sqlplus scott/tiger

sql*plus: release 9.2.0.4.0 - production on sun nov 7 12:30:19 2004

copyright (c) 1982, 2002, oracle corporation.  all rights reserved.


connected to:
oracle9i enterprise edition release 9.2.0.4.0 - production
with the partitioning option
jserver release 9.2.0.4.0 - production

sql> set echo on
sql> @f_get_rowid
sql> create or replace function get_rowid
2  (l_rowid in varchar2)
3  return varchar2
4  is
5  ls_my_rowid        varchar2(200);
6  rowid_type number;
7  object_number      number;
8  relative_fno       number;
9  block_number       number;
10  row_number number;
11  begin
12   dbms_rowid.rowid_info(l_rowid,rowid_type,

object_number,relative_fno, block_number, row_number);

13   ls_my_rowid := 'object# is :'||to_char(object_number)||chr(10)||

14   'relative_fno is :'||to_char(relative_fno)||chr(10)||

15    'block number is :'||to_char(block_number)||chr(10)||
16    'row number is   :'||to_char(row_number);
17   return ls_my_rowid ;
18  end;
19  /

function created.

sql> 
sql> select * from dept;

    deptno dname          loc
---------- -------------- -------------
10 accounting     new york
20 research       dallas
30 sales          chicago
40 operations     boston

sql> select rowid,a.* from dept a;

rowid                  deptno dname          loc
------------------ ---------- -------------- -------------
aaabipaabaaafrsaaa         10 accounting     new york
aaabipaabaaafrsaab         20 research       dallas
aaabipaabaaafrsaac         30 sales          chicago
aaabipaabaaafrsaad         40 operations     boston


sql> col row_id for a60
sql> select get_rowid('aaabipaabaaafrsaaa') row_id from dual;

row_id
------------------------------------------------------------
object# is      :6287
relative_fno is :1
block number is :21586
row number is   :0


sql> select get_rowid('aaabipaabaaafrsaab') row_id from dual;

row_id
------------------------------------------------------------
object# is      :6287
relative_fno is :1
block number is :21586
row number is   :1
sql>

 
 
上一篇: 诊断全局错误时如何在系统级进行设置    下一篇: 在oracle数据库中如何使用超过2g的内存
  相关文档
什么是Oracle数据访问组件(ODAC) 09-29
Oracle中decode()函数的使用技巧 09-29
轻松掌握删除oracle 10g垃圾表的好方法 11-21
解析:如何正确的更改监听器日志文件名称 11-15
教你删除oracle数据库中重复没用的数据 09-10
Oracle数据库中基本动态Web开发和应用 04-11
数据库不在open状态下的冷备份恢复步骤 02-29
Oracle中用脚本跟踪存储过程实例讲解 04-11
轻松了解Oracle的表快照特征 09-29
轻松掌握jdbc操纵Oracle数据库lob字段 09-29
"physical standby"置于read/write状态 03-05
Oracle安全性管理采取的基本措施简介 04-12
学会使用Oracle中的时间间隔型数据 04-11
Oracle数据库删除两表中相同数据的方法 06-10
解析:索引跳跃式扫描 (index skip scan) 11-15
Oracle数据库中Web分页方法详细介绍 04-11
怎样理解分布处理和分布式数据库 09-29
解决不同字符集数据库间的数据同步问题 03-07
vb与Oracle 数据库中的日期转换 09-29
使用impdp复制oracle的schema数据迁移 05-14
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息