当前位置: 首页 > news >正文

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


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

Last Updated: <!-- #BeginDate format:wfcIS1m -->Sunday, 2004-11-07 12:46<!-- #EndDate --> Eygle

<!--DWLayoutEmptyCell-->

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


相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 高斯消元法的应用
  • 小波 c语言实现,小波分析算法的公式与C语言实现
  • 输入一行数字把5都看成空格 C语言,算法设计习题整理112.doc
  • 值得尊敬的---抵抗之都费卢杰
  • 风潇潇兮
  • 单片机c语言基本类型修饰符,下列属于 C语言中类型修饰符的是()。
  • 不知如何走的立交桥(西直门交警一文背景)
  • 趣味c语言题目,C语言趣味程序设计题目百例.doc
  • android线程池不工作了,Android线程篇(二):Java线程池
  • CSDN Oracle电子杂志创刊号发布
  • android应用程序开发(第二版)课后习题答案.doc,android移动应用开发习题答案.pdf
  • android item设置,listview怎样设置每个Item的高度?
  • realone 启动报错之解决方法
  • 360 os android m,360 OS让手机能玩三个系统 “搞机”者的福音
  • 鸿蒙系统适配设备,鸿蒙系统并不只适配手机,志在万物互联!
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • Bytom交易说明(账户管理模式)
  • Docker: 容器互访的三种方式
  • Promise初体验
  • spring cloud gateway 源码解析(4)跨域问题处理
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 老板让我十分钟上手nx-admin
  • 力扣(LeetCode)357
  • 三分钟教你同步 Visual Studio Code 设置
  • 微信小程序设置上一页数据
  • 用jquery写贪吃蛇
  • ​什么是bug?bug的源头在哪里?
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • ‌移动管家手机智能控制汽车系统
  • #NOIP 2014# day.2 T2 寻找道路
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (10)ATF MMU转换表
  • (2)从源码角度聊聊Jetpack Navigator的工作流程
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (Java入门)抽象类,接口,内部类
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (三)SvelteKit教程:layout 文件
  • (十一)手动添加用户和文件的特殊权限
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .net 获取url的方法
  • .Net 基于.Net8开发的一个Asp.Net Core Webapi小型易用框架
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • .NET8使用VS2022打包Docker镜像
  • .net经典笔试题
  • @antv/x6 利用interacting方法来设置禁止结点移动的方法实现。
  • @Async注解的坑,小心
  • @require_PUTNameError: name ‘require_PUT‘ is not defined 解决方法