前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用dbms_rowid包获得rowid的详细信息

使用dbms_rowid包获得rowid的详细信息

作者头像
数据和云01
发布2018-09-12 10:37:52
6130
发布2018-09-12 10:37:52
举报
文章被收录于专栏:数据库新发现

使用dbms_rowid包获得rowid的详细信息

Last Updated: Sunday, 2004-11-07 12:46 Eygle

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>

本文作者: eygle,Oracle技术关注者,来自中国最大的Oracle技术论坛itpub. www.eygle.com是作者的个人站点.你可通过Guoqiang.Gai@gmail.com来联系作者.欢迎技术探讨交流以及链接交换.


原文出处:

http://www.eygle.com/faq/Use.dbms_rowid.Package.Get.Detail.Of.Rowid.htm

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2004年11月09日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档