oracle8的ROWID结构(转)

oracle8的ROWID结构[@more@]1、为什么使用ROWID
ORACLE把ROWID作为B-树和其内部算法标示ROW的唯一标示。
在ORACLE8以前的版本中,ROWID标示FILE、BLOCK、ROW NUMBER,只用一个数字代
表FILE号。
在ORACLE8中,一个DATAFILE有两个数字代表:
一个绝对值,是整个数据库唯一的。可以看DBA_DATA_FILES中的FILE_ID。
一个相对值,在TABLESPACE中是唯一的,可以看DBA_DATA_FILES中的RELATIVE_
FNO。

新的ROWID使用相对值,所以必须存放SEGMENT的标示,否则就会混淆。所以ORAC
LE8在ROWID中加入对象的SEGMENT号,用来标示TABLE或者PARTITION。

2、ROWID的结构
使用base-64代码,包括a-z,A-Z,0-9,+,-。一共18位。
1-6位:代表OBJECT
7-9位:文件相对值
10-15:文件中的BLOCK
16-18:BLOCK中的SLOT值

3、TABLESPACE-Relative寻址方式
使用的是TABLESPACE-Relative寻址方式,多个文件可以有相同的相对值,因为它
们属于不同的TABLESPACE,所以不能从新的ROWID得到绝对地址,但是这没有问题
,因为当要处理某个OBJECT时,已经能确定它属于哪个TABLESAPCE了。在TABLES
PACE中,文件相对值是唯一的,所以ROWID还是可以唯一标示一个OBJECT。TABLE
SPACE-Relative寻址方式是ORACLE8中支持超大数据库的关键技术。

4、DATA OBJECT NUMBER
DATA OBJECT NUMBER用于指示SEGMENT,所有SEGMENT都有DATA OBJECT NUMBER,
存放在每个DATA BLOCK中,而且不重复。

最开始的时候,DBA_OBJECTS.OBJECT_ID=DBA_OBJECTS.DATA-OBJECT_ID,但是在
上述情况下DATA-OBJECT_ID会在如下情况下增加
TRUNCATE TABLE
MOVE PARTITION
ORACLE会检查ROWID中的DATA OBJECT NUMBER和BLOCK中的DATA OBJECT NUMBER,
保证他们之间的版本是一致的。
ORACLE也使用DATA OBJECT NUMBER以确保ROLLBACK的纪录和最新的SEGMENT纪录一
致。
要注意的是DATA OBJECT NUMBER不是OBJECT 的标志


5、RESTRICTED ROWID
ORACLE7的ROWID格式是
1-8位:BLOCK NUMBER
9-12位:ROW NUMBER
13-16位:FILE NUMBER
ORACLE8支持短的、旧格式的ROWID,作用是
对NOPARTITION TABLE的INDEX ENTRY
对PARTITION TABLE的LOCAL INDEX ENTRY
ROW Piece CHain pointer
受限ROWID的内部存放是6BYTE,
4BYTE=DATA BLOCK NUMBER
2BYTE=ROW NUMBER
这就是说,INDEX ENTRY使用6BYTE存放该ROWID,这对大多数INDEX足够了。但是
这种短ROWID不能使用在PATITION TABLE的GLOBAL INDEX上,因为PARTITION可能
跨TABLESPACE。显示这种ROWID依然是18位的

6、扩展的ROWID
ORACLE在内部存放时候是10 BYTE,包括(DATA OBJECT NUMBER,DATA BLOCK NU
MBER,ROW NUMBER)
ORACLE8使用扩展的ROWID:
PARTITION TABLE 的GLOBAL INDEX
SERVER 算法
扩展的ROWID在SELECT时,依然是18位的显示,存放在ROWID字段中。

7、在ORACLE8中使用ORACLE7的ROWID
从ORACLE8的DB中查询ORACLE7的ROWID时候,ROWID返回的是ORACLE7的格式,也可
以用在WHERE语句中。
从ORACLE7的DB中查询ORACLE8的ROWID时候,ROWID返回的是ORACLE8的格式,也可
以用在WHERE语句中,但是不能存放在ROWID字段中。但是你要用DBMS_ROWID 包来
解释之。
如果包含扩展的ORACLE8 ROWID,这不能把ORACLE8的数据IMPORT到ORACLE7中。从
ORACLE7中可以IMPORT到ORACLE8中。

8、APPLICATION的移植问题
一般程序的移植应该没有问题。只有在下面情况下才考虑移植问题:
application使用了rowid
table包括ROWID类型的字段
如果程序有如下情况,必须使用DBMS_ROWID包:
自己组合ROWID
自己分解ROWID
如果仅仅是传递ROWID到变量、或者仅仅做为一个整体使用,则可以不受影响。


9、数据的移植问题
无论使用EXPORT/IMPORT还使用移植工具,ORACLE7中的ROWID字段到了ORACLE8中
就自动扩展。
如果在某个字段内容中包含ROWID,则必须手工用DBMS_ROWID包来转换。

10、DBMS_ROWID包
由$ORACLE_HOME/rdbms/admin/dbmsutil.sql创建,其实在catproc.sql中包含着
。提供处理ROWID的一些函数。
ROWID_CREATE
ROWID_INFO
ROWID_TYPE
ROWID_OBJECT
ROWID_RELATIVE_FNO
ROWID_BLOCK_NUMBER
ROWID_TO_ABSOLUTE_FNO
ROWID_TO_EXTENDED
ROWID_TO_RESTRICTED
ROWID_VERIFY



DBMS_ROWID.ROWID_TO_EXTENDED
(old_rowid in ROWID,
schema_name in varchar2,
object_name in varchar2,
conversion_type in number
)
RETURN ROWID;
转换受限rowid到扩展rowid,用于转换旧的ROWID到ORACLE8的格式。


DBMS_ROWID.ROWID_TO_RESTRICTED
转换扩展的ROWID到受限的ROWID。

DBMS_ROWID.ROWID_VERIFY
判断一个受限的ROWID是否可以转换到扩展的格式


DBMS_ROWID.ROW_INFO
用于解释ROWID,可以得到DATA OBJECT NUMBER,RELATIVE FILE NUMBER,BLOCK
NUMBER和ROW NUMBER。

DBMS_ROWID.CREATE
生成ROWID。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9417382/viewspace-937501/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9417382/viewspace-937501/

高光谱目标检测论文学习(1)—— Hyperspectral Target Detection:Hypothesis Testing,SNR and SA Theories 前言 从这篇开始,将会学习一些高光谱目标检测的论文,我仍然把这篇文章放到了读论文专栏里,但是不对其进行顺序编号了,因为这个方向是比较小众的。今天来学习这篇TGRS2021的最新论文,讲的比较详细,相对比较适合初学者入门。我之前也写过一些有关目标检测的论文,但是高光谱目标检测(HTD)和之前的我们学的目标检测是不同的,因为其检测的对象不是普通摄像头得来的数字图像,而是高光谱遥感图像。其包含了很多光谱信息,而光谱信息本身经过处理后就可以作为特征,因此很多情况下就无需使用广义的目标检测问题中的卷积神经网络等方式去 阅读详情

相关推荐

SpringBoot使用mybatis-plus的自动代码生成器

一.SpringBoot使用mybatis-plus+自动代码生成 使用mybatis-plus可以自动帮我们生成通用的 controller,service,dao,mapper 二.加入依赖 <!-- MP 核心库 --> <dependency> <groupId>com.baomidou</groupId> <artif...

农民娃儿的博客 2263

oracle中rowid的用法

rowid概述 rowid是一个用来唯一标记表中行的伪列。它是物理表中行数据的内部地址,包含两个地址,其一为指向数据表中包含该行的块所存放数据文件的地址,另一个是可以直接定位到数据行自身的这一行在数据块中的地址。 除了在同一聚簇中可能不唯一外,每条记录的rowid是唯一的。可以理解成rowid就是唯一的。 扩展ROWID 从Oracle 8i开始使用扩展rowid标识行物理地址 扩展rowid使用base64编码行的物理地址,编码字符包含A-Z, a-z, 0-9, +,和/。 扩展rowid.

木头 1万+

基于ROS2 Humble与Livox Mid-360的双雷达点云融合实战解析

本文详细解析了基于ROS2 Humble与Livox Mid-360的双雷达点云融合实战方案。从环境搭建、驱动安装、双雷达配置、外参标定、时间同步到点云融合核心实现,全面介绍了技术要点与避坑指南,并提供了工程化部署与性能优化建议,助力开发者高效实现高精度点云合成应用。

ss78901的博客 1093

Oracle rowid详解

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

Flychuer的专栏 1万+

Abel逆变换及其求解方法

Abel逆变换常应用在轴对称的、光学薄的火焰、羽流或等离子体重建。

weixin_49783507的博客 8369

electron windows设置镜像地址环境变量报错npm error `ELECTRON_MIRROR` is not a valid npm option

如果你是在使用某个特定的脚本或配置文件,请检查该文件中是否有不正确的配置项,并进行相应的修正。确保你遵循electron的官方安装指南,并且没有包含不必要的或错误的配置选项。如果问题依然存在,可以查看npm的官方文档或者相关社区获取更多帮助。

qq_36158551的博客 3322

Oracle中ROWID详解

ROWID是ORACLE中的一个重要的概念。用于定位数据库中一条记录的一个相对唯一地址值。通常情况下,该值在该行数据插入到数据库表时即被确定且唯一。ROWID它是一个伪列,它并不实际存在于表中。它是ORACLE在读取表中数据行时,根据每一行数据的物理地址信息编码而成的一个伪列。所以根据一行数据的ROWID能找到一行数据的物理地址信息。从而快速地定位到数据行。数据库的大多数操作都是通过ROWID来完...

唐僧洗发用飘柔 7172

10分钟上手YOLOv11:最强姿态估计模型来了,代码开源,效果炸裂!

【10分钟玩转YOLOv11实时姿态估计】🚀 YOLOv11作为YOLO家族最新成员,在速度、精度和易用性上全面升级,尤其适用于姿态估计等复杂视觉任务。本文带您快速掌握: 1️⃣ 核心概念:姿态估计即识别人体17个关键点(如关节部位)并连接成数字骨架,是智能健身、体感游戏等应用的基础。 2️⃣ 技术优势: 超轻量级(最小仅2.9M参数) 极速推理(GPU仅1.7ms) 高精度(COCO mAP@50-95达50%) 3️⃣ 三步实操: ① 安装:pip install ultralytics ② 准备人物

weixin_41246802的博客 1787

ORACLE中的rowid用法

rowid概述 rowid是一个用来唯一标记表中行的伪列。它是物理表中行数据的内部地址,包含两个地址,其一为指向数据表中包含该行的块所存放数据文件的地址,另一个是可以直接定位到数据行自身的这一行在数据块中的地址。 除了在同一聚簇中可能不唯一外,每条记录的rowid是唯一的。可以理解成rowid就是唯一的。 扩展ROWID 从Oracle 8i开始使用扩展rowid标识行物理地址 ...

3249

Arduino Uno R3开发板系列学习教程(番外篇:USB驱动安装与疑难排解)

本文详细介绍了Arduino Uno R3开发板USB驱动安装与疑难排解的完整指南,特别针对国产克隆版常见的CH340驱动问题提供解决方案。从识别开发板类型到Windows/Mac系统驱动安装步骤,再到常见问题排查与高级排错技巧,帮助开发者快速解决连接问题,确保程序烧录顺利进行。

weixin_29182481的博客 581

DSI3接口介绍

DSI3(distributed system interface)分布式系统接口,是一种强大且通用的总线协议,旨在将多个遥感器和执行器互连到中央控制模块。在单总线中集成了电压信号、电流信号还有电源,甚至引用了3位状态机概念(反向数据),从逻辑0/1扩展到了0/1/2。

Airer_00的博客 4302

Oracle ROWID

Oracle ROWID ROWID为Oracle表的一个伪列,并不存储在数据库中,只是在执行查询的时候才计算它的值。 注:除了在同一聚簇中可能不唯一外,每条记录的rowid是唯一的 示例:查看rowid列 SQL> select rowid from emp; ROWID ------------------ AAAR3sAAEAAAACXAAA AAAR3sAAEAAAACX

一玩儿家的田地 2902

使用 MATLAB/Simulink 构建一个基于FOC控制的PMSM矢量控制仿真模型

本教程详细介绍了基于MATLAB/Simulink的永磁同步电机(PMSM)磁场定向控制(FOC)系统建模与仿真方法。主要内容包括:PMSM电机模型参数设置、Clarke/Park变换模块设计、电流环PID控制器配置、SVPWM调制实现以及系统仿真参数优化。文章提供了模块化设计思路和具体参数设置示例,并给出了PID整定建议和进阶优化方向。通过该仿真模型,可深入理解PMSM矢量控制原理,掌握高性能电机控制系统的建模技巧,适用于伺服系统、电动汽车驱动等高端控制场景。教程还推荐了实时仿真和高级控制策略等扩展应用。

xiaoheshang_123的博客 528

oracle rowID切片,Oracle中ROWID详解

Oracle的ROWID用来唯一标识表中的一条记录,是这条数据在数据库中存放的物理地址.Oracle的ROWID分为两种:物理ROWID和逻辑ROWID。索引组织表使用逻辑ROWID,其他类型的表使用物理ROWID。其中物理ROWID在Oracle的8版本中进行了扩展,Oracle7及以下版本使用约束ROWID,Oracle8及以上版本使用扩展ROWID。本文描述物理扩展ROWID,由于约束ROW...

weixin_35004618的博客 1086

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

oracle rowid唯一吗,ROWID唯一性

在oracle数据库中rowid是唯一的吗,或许很多人第一反应都是这么认为。这种说法其实并不准确,应该说在oracle 8以前,在整个数据库层面rowid是唯一的,而从oracle 8开始,在数据库层面rowid并不是全局唯一的,针对表空间来说,存储在其中的数据的rowid则是相对唯一的。我们知道在数据库中存放的每一条记录都有一个ROWID ,代表着这条记录在数据库存放的物理地址。从oracle ...

weixin_32432759的博客 1526

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

oracle rowid的理解

一. 官网说明        owid的定义:A globally unique address for a row in a database.        rowid 分为extended rowid 和 restricted rowid. 1.1 Restricted ROWID        Internally, the ROWID is a structure that ho

Davin_(幸福在于感悟).......... 2083

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

oracle rowid转换,rowid可以更改吗?

ROWID及UROWID数据类型oracle使用ROWID数据类型存储每个数据行在数据库中的地址(rowid)。*物理 rowid[physical rowid]:用于存储常规表[ordinary table](即索引表[index-organized table]之外的数据表)、簇表[clustered table]、表分区及子分区、索引、索引分区及子分区数据行的地址。*逻辑 rowid[log...

weixin_42525569的博客 2183

oracle中中rowid,oracle中的Rowid和Urowid

Oracle使用rowid数据类型存储行地址,rowid可以分成两种,分别适于不同的对像Physical rowids:存储ordinary table,clustered table,table partition and subpartition,indexe,index partition and subpartitionLogical rowids :存储IOT的行地址另一种rowid类型...

weixin_33743292的博客 1273

oracle8的ROWID结构

1、为什么使用ROWID   ORACLE把ROWID作为B-树和其内部算法标示ROW的唯一标示。   在ORACLE8以前的版本中,ROWID标示FILE、BLOCK、ROW NUMBER,只用一个数字代   表FILE号。   在ORACLE8中,一个DATAFILE有两个数字代表:   一个绝对值,是整个数据库唯一的。可以看DBA_DATA_FILES中的FILE_ID。

oracleerp的专栏 1004

oracle的rowid到底是什么

rowid说明 rowid是伪列(pseudocolumn),伪列的意思是实际上这一列本身在数据字典中并不存在,在查询结果输出时它被构造出来的。 rowid并不会真正存在于表的data block中,但是他会存在于index当中,用来通过rowid来寻找表中的行数据。 Rowid的结构 现在通用的9i,10g,11g用的都是扩...

dd334566788566的博客 1160

oracle rowid 详解

oracle rowid详解       今天是2013-09-15,存储在数据库中的每一行数据都有一个地址,oracle使用rowid数据类型在存储地址。rowid有如下类别: 1)physical rowids,存储堆表、簇表以及表和索引分区中每行地址 2)logical rowids,存储索引组织表的每行的地址 3)foreign rowids,定义在外部表中。如通过gatewa

Rhys learn oracle! 3326

Oracle rowid

Oracle rowid          行的ROWID指出了该行所在的数据文件、数据块以及行在该块中的位置,所以通过ROWID来存取数据可以快速定位到目标数据上,是Oracle存取单行数据的最快方法。     为了通过ROWID存取表,Oracle 首先要获取被选择行的ROWID,或者从语句的WHERE子句中得到,或者通过表的一个或多个索引的索引扫描得到。Oracle然后以得到的 R

yibuyibupa的专栏 814

oracle的rowid和rownum,【oracle rowid与rownum的使用与区别 】

一、rowid的定义:1、rowid是数据库的一个伪列,建立表的时候数据库会自动为每个表建立ROWID列,是数据库中每一条记录的唯一标识,存储每条记录的实际物理地址,对记录的访问是基于ROWID。但它实际上不存储在表中,可以从表中查询,但不支持插入,更新,删除它们的值。ROWID可以分为物理rowid和逻辑rowid两种。普通的堆表中的rowid是物理rowid,索引组织表(IOT)的rowid是...

weixin_29682503的博客 2665

Oracle rowid urowid

Oracle rowid urowid 本文讨论的是关于oracle从8i开始引进object的概念后的rowid,即扩展(extended)的rowid: 1.       rowid的介绍 先对rowid有个感官认识: SQL> select ROWID from Bruce_test where rownum ROWID ------------------ -------

cyxlxp8411的专栏 1001

oracle由rowid查找表,Oracle ROWID与RDBA

Oracle ROWID与RDBA1.1Rowid的意义1. Rowid就是用来标记表中每一行的行地址的,分为逻辑rowid,物理rowid和外部rowid,一般索引组织表的行地址使用逻辑rowid,堆组织表、 表簇、表分区、和索引分区的行地址使用物理rowid。外部rowid则是用来标识外来表(非oracle数据库的表)的行。3. Oracle 数据库在内部使用 r...

weixin_42514783的博客 961
上一篇: ORACLE数据库的启动和关闭(转)
下一篇: Oracle 基本知识(转)
congwan5321
博客等级 码龄11年 1粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值