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

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

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