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

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

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