dbms_rowid包的一个用法

Oracle数据库DBMS_ROWID包及标准库函数应用详解 Oracle数据库是全球范围内应用最广泛的关系型数据库管理系统之一。它由Oracle公司开发和维护,支持庞大的数据量和并发用户,为各个行业提供高效的数据库解决方案。Oracle数据库的设计旨在保证数据的完整性、安全性和可靠性,同时提供强大的数据集成、分布式处理和多平台支持。Oracle数据库支持多种编程语言的接口,如SQL, PL/SQL等,为数据库管理和应用开发提供了灵活的手段。 阅读详情

 

Rowid中包含了记录的详细信息,不过这串数字一般都不太看得懂,和informix中的rowid是不一样的。但是在oracle中通过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;         
/
                     
 

 

我们看一下其用法:

 

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> select rowid,service_id from service_bean where service_id=155;

ROWID              SERVICE_ID
------------------ ----------
AAAhZRAAaAAAAaKAC7        155

SQL> select get_rowid(AAAhZRAAaAAAAaMADi) rowid from dual;
select get_rowid(AAAhZRAAaAAAAaMADi) rowid from dual
                                     *
ERROR 位于第 1 行:
ORA-00923: FROM keyword not found where expected


SQL> select get_rowid(AAAhZRAAaAAAAaMADi) row_id from dual;
select get_rowid(AAAhZRAAaAAAAaMADi) row_id from dual
                 *
ERROR 位于第 1 行:
ORA-00904: "AAAHZRAAAAAAAAMADI": invalid identifier


SQL> select get_rowid(AAAhZRAAaAAAAaMADi) from dual;
select get_rowid(AAAhZRAAaAAAAaMADi) from dual
                 *
ERROR 位于第 1 行:
ORA-00904: "AAAHZRAAAAAAAAMADI": invalid identifier


SQL> select get_rowid('AAAhZRAAaAAAAaMADi') rowid from dual;
select get_rowid('AAAhZRAAaAAAAaMADi') rowid from dual
                                       *
ERROR 位于第 1 行:
ORA-00923: FROM keyword not found where expected


SQL> select get_rowid('AAAhZRAAaAAAAaMADi') row_id from dual;

ROW_ID
----------------------------------------------------------------

Object# is      :136785
Relative_fno is :26
Block number is :1676
Row number is   :226

其中,Object#是

select object_id from all_objects where object_name='SERVICE_BEAN';

Relative_fno 是该表所在数据文件的编号


 

该知识点的原文见http://blog.youkuaiyun.com/eygle/archive/2004/11/09/174061.aspx

[调参神器]使用VOFA+上位机进行PID调参(附下位机代码) ​ 简单地来说,VOFA+是一个超级串口助手,除了可以实现一般串口助手的串口数据收发,它还可以实现数据绘图(包括直方图、FFT图),控件编辑,图像显示等功能。​ 如果只是想要用VOFA+来进行数据绘图,直接使用一个波形图控件就行,但是如果想要把VOFA+当作一个长期使用的调参助手,我们最好设置一下控件。VOFA+简洁好用,但是又有点太简洁了,部分体验并不是很好(比如不能调整控件大小,保存文件不太方便等),所以如果学有余力,推荐自己用QT/PyQT写上位机。接下来,我们要将指令中的数据提取出来。 阅读详情

相关推荐

monocle使用sct整合数据integration还是rna中的counts数据 轨迹分析 拟时序

【代码】monocle使用sct整合数据integration还是rna中的counts数据 轨迹分析 拟时序。

生信小博士的博客 1049

ORACLE数据库DBMS_ROWID包详解

概述 DBMS_ROWID包允许使用PL/SQL程序或SQL语句创建rowids和获取rowid的信息。例如我们可以通过其找到数据对象编号,数据文件编号,包含数据行的数据块编号及数据块中的数据行。该包从Oracle 8.X开始可用。 这个包在11gR2中有11个函数或存储… 1. 根据给定参数返回一个rowid --根据给定参数返回一个rowid FUNCTION rowid_create(rowid_type IN NUMBER,--rowid类型,0:restricted,1:extended

淡定波的博客 1450

C语言 在合并编译 ( 多.c文件 ) 情况下 实现 linked list ( 链表 ) 教程 . 更新ing

写在前面  依旧是参考借鉴了 浙江大学 温老师 的视频教程,很不错,在中国大学MOOC上,强力推荐!  虽说有借鉴,但是能保证的是每一行代码都是我自己经过理解后手敲出来的,所以才来做了这部分的教程。  最后,带 * 字符是我个人觉得可以添加的功能,按理来讲是可以不看的,而且大概率是可以有更好的改进的。  PS: 文章还在更新,如果文字蓝了(有超链接),说明写完了,如果没蓝,说明我在开军舰.jpg 源代码:  这里→源代码. 第一步:前置工作  先说一下每一篇都会出现 main 函数的,stage1 只是给没

weixin_47287635的博客 524

DBMS_ROWID包(ROWID_CREATE函数)

DBMS_ROWID DBMS_ROWID包允许我们使用PL/SQL程序或SQL语句创建rowids和获取rowid的信息。例如可以通过其找到数据对象编号,数据文件编号,包含数据行的数据块编号及数据块中的数据行。该包从Oracle 8.X开始可用。 DBMS_ROWID的几个子函数程序: 1、ROWID_BLOCK_NUMBER函数(该函数返回输入ROWID的数据块编号) 语法: D

haiross的专栏 6194

Ubuntu22.04 网络图标消失与连接故障排查指南(附实战修复流程)

本文详细介绍了Ubuntu22.04系统中网络图标消失与连接故障的排查与修复方法。通过ifconfig、dhclient等命令诊断问题,提供从紧急恢复网络连接到深度排查的完整解决方案,帮助用户快速恢复网络功能并预防类似问题再次发生。

weixin_28481133的博客 287

S32DS使用手把手教程:从零实现CAN通信配置

深入讲解S32DS使用过程中如何从零开始配置CAN通信,涵盖关键步骤与实用技巧,帮助开发者快速上手S32DS使用中的常见问题与调试方法。

weixin_42405592的博客 1124

使用dbms_rowid抢救数据

使用dbms_rowid抢救数据测试环境准备原理rowiddbms_rowid使用rowid来抢救数据(实际也是跳过坏块)event 10231跳过原理段头损坏不能使用dbms_rowid抢救数据 通过DBMS_REPAIR包或设置10231事件,抢救坏块之外数据的方法,相比即将介绍的ROWID扫描方法,更为简洁。但上述方法只适合于出现ORA-1578的情况,而且根据经验,该方法经常不能有效进行数据抢救。因此,下面我们将详细介绍ROWID扫描方法。 测试环境准备 原理 rowid 在oracle数据库中

fanzhuozhuo的博客 384

Synopsys AXI VIP 从环境搭建到首个验证场景运行

本文详细介绍了Synopsys AXI VIP从环境搭建到首个验证场景运行的全过程,包括VIP安装、示例工程生成、验证环境解析、仿真调试技巧及进阶优化。特别针对AXI协议验证中的常见问题提供了实用解决方案,帮助工程师快速掌握这一SoC验证必备工具。

weixin_29185493的博客 340

DBMS_ROWID包的使用

DBMS_ROWID是一个比较有用的系统自带的package,主要可以用来处理坏块的问题,于是仔细的研究了一下,这个包可以用来了解file、block、object id和rowid之间的关系,在Oracle8中被引用进来,Oracle7不支持这个包。这个包的定义可以在dbmsutil.sql中找到,在catproc.sql中被调用,并被给予public执行权限。  F^h4R.

爱肯的专栏 683

URScript介绍

优傲机器人(Universal Robots)是丹麦工业协作机器人制造商,2005年成立,2015年被泰瑞达收购。其自研编程语言URScript基于Python语法,专为机器人控制优化,支持运动指令、IO控制等功能,具有类Python的简洁语法和实时性特点。URScript提供丰富的API,支持变量赋值、条件判断、循环及函数定义等编程结构,参数按值传递。用户可通过该语言在Polyscope界面编写程序,实现自动化任务。目前优傲在全球20多个办事处为多国客户提供服务。

谢谢大家的关注和点赞!这里只有纯纯的知识干货,没有一句废话。希望能实实在在帮到大家~要是觉得有用,别忘了给我点支持哟,你 602

Google Cameraserver 看门狗CameraServiceWatchdog超时crash原理分析

本文分析了Android CameraServiceWatchdog机制的工作原理。该看门狗用于监控相机服务关键操作(如close、flush)的超时情况,通过定时器线程检测阻塞问题。文章详细讲解了Watchdog的初始化流程、使能方式、内部定时器机制(默认周期100ms,650次循环触发超时),并提供了configureStreams阶段的客制化实现方案。当检测到超时,Watchdog会触发abort生成tombstone日志,便于调试分析。

1128

dbms_rowid

dbms_rowid 用于在pl/sql和sql语句中用于取得rowid相关的信息,和建立 rowid;可以取得行所在的文件号,行所在文件的数据块号,行所在数据块的行号,以及数据库对象号等信息;– 1,rowid_create /* 该函数用于建立rowid 0–受限 1–扩展 */ dbms_rowid.rowid_create

weixin_36408281的博客 825

大数据运营可视化:Tableau+PowerBI数据看板搭建教程

当企业数据量从“GB级”跃升到“TB级”,运营人员面临的最大挑战不再是“如何收集数据”,而是“如何让数据说话”。数据看板作为“运营指挥中心的仪表盘”,能将零散的用户行为、业务指标、流量趋势浓缩成可快速解读的视觉语言。本文结合Tableau(自由探索的“数据瑞士军刀”)与PowerBI(微软生态的“组合家具”)两大工具,从需求分析→数据准备→指标设计→视图搭建→ dashboard 组合,一步步教你搭建符合业务逻辑的运营看板。

AI智能探索者的博客 1362

sql server 获取rowid_一文掌握ORACLE DBMS_ROWID包用法,值得收藏

概述DBMS_ROWID包允许我们使用PL/SQL程序或SQL语句创建rowids和获取rowid的信息。例如可以通过其找到数据对象编号,数据文件编号,包含数据行的数据块编号及数据块中的数据行。该包从Oracle 8.X开始可用。这个包在11gR2中有11个函数或存储:1、 根据给定参数返回一个rowid--根据给定参数返回一个rowid FUNCTION rowid_create(rowid_t...

weixin_39724004的博客 1037

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

DBMS_ROWID包应用一:ROWID_BLOCK_NUMBER

This function returns the database block number for the input ROWID. 这个函数根据输入的ROWID返回数据块 Syntax DBMS_ROWID.ROWID_BLOCK_NUMBER ( row_id IN ROWID, ts_type_in IN VARCHAR2 DEFAULT '

xinxiangsui2008的专栏 2436

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

DBMS_ROWID包应用二:ROWID_CREATE

This function lets you create a ROWID, given the component parts as parameters. This is useful for testing ROWID operations, because only the Oracle Server can create a valid ROWID that points to dat

xinxiangsui2008的专栏 1304

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

DBMS_ROWID包应用四:ROWID_RELATIVE_FNO

This function returns the relative file number of the ROWID specified as the IN parameter. (The file number is relative to the tablespace.) Syntax DBMS_ROWID.ROWID_RELATIVE_FNO ( rowid_id

xinxiangsui2008的专栏 2473

常用的dbms 包介绍

首先介绍:dbms_rowidDBMS_ROWID包主要是用来获得数据库块的block number,object number等信息常用的选项有下:ROWID_BLOCK_NUMBER FunctionReturns the block number of a ROWID根据ROWID获取数据块的NUMBERSQL> select * from T4  2 ;ID N

爱肯的专栏 1655

Oracle rowid详解

oracle数据库的表中的每一行数据都有一个唯一的标识符,或者称为rowid,在oracle内部通常就是使用它来访问数据的。rowid需要 10个字节的存储空间,并用18个字符来显示。该值表明了该行在oracle数据库中的物理具体位置。可以在一个查询中使用rowid来表明查询结果中包含该值。 保存rowid需要10个字节或者是80个位二进制位。这80个二进制位分别是: 1. 数据对象编号,表明此行所属的数据库对象的编号,每个数据对象在数据库建立的时候都被唯一分配一个编号,并且此编号...

Flychuer的专栏 1万+

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

Rowid中包含了记录的详细信息,通过dbms_rowid包可以获得这些信息.本文通过一个定义自定义函数介绍该package的使用.create or replace function get_rowid (l_rowid i...

congwei1159的博客 146

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

使用dbms_rowid包获得rowid的详细信息Rowid中包含了记录的详细信息,通过dbms_rowid包可以获得这些信息.本文通过一个定义自定义函数介绍该package的使用.create or replace function get_rowid(l_rowid in varchar2)return varchar2isls_my_rowid varchar2(200);rowid_ty...

weixin_31720227的博客 364

DBMS_ROWID包的使用(查询rowid资料 )!

dbms_rowid包可以通过表中各条记录的唯一rowid号,来查看这条记录的信息,例如所属object、block等等。这个包很简单,但是对于确定当前行的信息值还是比较有用的。而dbms_rowid包的function可以在SQL中直接使用,下面先找一个rowid出来。 SQL> select rowid,object_name,object_id from t1 where rownum

事后诸葛亮的程序人生(微信:zq9017197) 6138

DBMS_ROWID包应用三:ROWID_OBJECT

This function returns the data object number for an extended ROWID. The function returns zero if the input ROWID is a restricted ROWID. Syntax DBMS_ROWID.ROWID_OBJECT ( rowid_id IN ROWID) R

xinxiangsui2008的专栏 817

dbms_rowid 在实际中的使用

os: centos 7.4 db: oracle 12.1.0.2 dbms_rowid 的 package 测试表准备 SQL> create table tmp_t0(c0 varchar2(100),c1 varchar2(100)); Table created. SQL> insert into tmp_t0 select '1','11' from dual; 1...

一名数据库爱好者的专栏 644

Oracle10gdbms_rowid包源码

原 Oracle 10g dbms_rowid 包源码https://blog.youkuaiyun.com/tianlesoftware/article/details/6697761版权声明: https://blog.youkuaiyun.com/tianlesoftware/article/details/6697761 前几天Roger 的blog 更新了一篇文章,是DBMS_ROWID包的定义部分,Orac...

rede 441

(原)dbms_rowid.rowid_create来创建一个rowid

在v$session视图中有四个字段,如下: ROW_WAIT_OBJ# NUMBER Object ID for the table containing the row specified in ROW_WAIT_ROW# ROW_WAIT_FILE# NUMBER Identifier for the datafile containing the r...

dd334566788566的博客 350
上一篇: EXP-00056错误的解决
下一篇: Creator of Sort Segment in Oracle 8 and above
binaryge
博客等级 码龄23年 2粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值