Oracle服务中来确认数据类型内部的构造

本文主要讲述的是Oracle基本数据类型的内部存储格式的目标,即在Oracle服务中来确认相关数据类型的内部具体构造 ,以下就是数据库的相关内容的具体介绍,希望你在浏览完此篇文章之后会有会所了解。

目标:在Oracle服务中确认数据类型的内部构造

解释数据类型在内部是如何存储的

内部存储知识

能更好的解释和分析块dumps

某些崩溃诊断必须的技能

帮助客户分析各种存储问题

是明白内部事务的必须步骤

Oracle数据类型包含:

内置数据类型

用户自定义数据类型

结构型对象类型

聚合型

VARRAYS

嵌套表

引用类型(引用对象类型)

注意的是,Oracle服务为程序提供了很多种数据类型,例如数字格式的:number,integer,float,decimal字符格式的:char,charz,string,varchar内部数据类型从内部向外部自动的由Oracle来转换。

内置数据类型

 

  1. char,nchar,varchar2,nvarchar2   
  2. number   
  3. raw   
  4. long,long raw   

 

date datetime以及时间间隔类型

 

  1. clob,blob,nclob,bfile   
  2. rowid,urowid  

 

列中的数据取决于列的数据类型,但是数据类型并不是存储列数据的块中,本章以及后续课程将使用sql dump函数。范例中列的名字为TYP,关联的内部代码是各种数据类型,内部代码存储在数据字典中,在表col$的列type#下。

char和varchar2

字符类型数据通常是以数据库的字符集(单字节)存储的char固定长度的字符串,最多2000字符;内部代码:96 varchar2浮动长度字符串,最多4000字符内部代码:1为了能识别dump的输出文件,必须要知道他们存储的代码页。

char在char类型的列中,所有的空字节被空格(代码32)填充长度固定由于char类型代码为96,长度固定,因此很容易分辨出那些是用来填充的空格

varchar2 varchar2列中,将不用空格填充。

长度不固定

nchar和nvarchar2字符数据也可以使用国家字符集(多字节)设置存储nchar固定长度,最多2000字节内部代码:96 nvarchar2浮动长度,最多4000字节内部代码:1

number数字类型内部存储是一个字节的变长阿拉伯数字数组数字类型有以下格式< [length]>,sign bit/expornent,digit1,digit2,……,digit20内部代码:2注意的是,number和float有同样的内部特性。

指数类型指数字节包含三个部分:符号位:是整个字节的最高位(128)

如果是0,则数字是负数如果是1,则数字是正数或者0偏移量:总是65指数:范围为-65到62标示该数字100为基础的科学记数法如果指数是200=128+65+7,那么指数就是7,因此数据应该是大于100的7次方如果一个数字是服侍,指数也同样的计算,但是要从255翻转,例如,一个指数为7的负数的计算是:-(125+65+7)=-(200)=255-200=77偏移量使得负数的指数不需要使用别的字节来作为指数标志如果第一个字节大于128,那么数字是正的:exponent=first byte 128 -65=first bytes193如果第一个字节小于128,那么数字是负的:

exponent=(255-first byte)-128-65=62-first byte

digits大部分数字的最高位是digit1使用100作为基数(每一个数字是0-99之间)

对于正数:对于每个digit使用进位(1…100)

对于负数:不是使用进位,而是从101减基数标志102(0×66)是最后的数据库的进位中是没有0的,0标示数据结束。虽然现在该规则已经废除,但是为了兼容,还是保留。现在Oracle服务通过计算长度来知道数据的结束。

存储是基于矢量对照语法的。从左边开始,比较数据的大小直到:一个部分不同,在这种情况下,最低的字节决定最小数字一个数据已经完成,在这种情况下,这个是两个数字中的最小的。

所有的数据都比较完成,在这种情况下,两个数字相等负数从101开始存储,因此比较下面的数字:4=<193,5>,3=<193,4>比较这些字节,+4大于+3.负数-4和-3.指数必须是62,如果值不是从101开始,则可能-4=<62,5>并且-3=<62,4>,这个时候,-4比 -3大,显然是错误的。但是从101开始以后,数字就变成了-4=<62,97>并且-3=<62,98>.现在-3是比-4大的。

字节102附加在负数的后面,保证他们排序的正确性。比较数字-100<61,100,102>和-115< 61,100,86,102>如果102不在这里,那么<61,100>和<61,100,86>将得到错误的结果,- 100比-115小。

正数的例子:因为数字是基于100的,因此最大的数字是99.指数从-65到62,因此,Oracle的number的范围为:1*100(-65)=1*10(-120)到99*100(62)+99*100(61)…… 无限接近1*10^(126)

但是,因为最大的精度是38,Oracle将对超出精度的数据进行round操作。如果数字的字节数超过21,Oracle服务就会报溢出16进制也包括在这里面,因为在块dump中是一样的表现的要注意第二个字节是如何增加和减少的,数字是基于100的。

【编辑推荐】

  1. Windows 7下安装Oracle 11g相关问题解决方法
  2. Oracle体系结构中两个概念详解
  3. Oracle体系结构中的基本概念,数据库的介绍
  4. Oracle安装脚本的相关代码介绍
  5. Oracle内存结构的相关篇SGA

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/230882.html<

(0)
管理的头像管理
上一篇2025-04-19 10:49
下一篇 2025-04-19 10:51

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注