Oracle基本数据类型存储格式研究(二)—数字类型

数字类型包含number,integer,float...oracle内部标识为2

数字类型在oracle内部是以单字节的数字为存储的变长数组

数字类型在oracle文件中的存储格式为:

类型 ,符号/指数位 [数字1,数字2,数字3,......,数字20]

各位的含义如下:

1.类型: Number型,Type=2 (类型代码可以从Oracle的文档上查到)

2.长度:指存储的字节数

3.符号/指数位

在存储上,Oracle对正数和负数分别进行存储转换:

正数:加1存储(为了避免Null)

负数:被101减,如果总长度小于21个字节,最后加一个102(是为了排序的需要)

指数位换算:

If the first byte is greater than or equal to 128, then the number is positive and the

exponent is:

exponent = first byte - 128 - 65 = first byte - 193

If the first byte is less than 128, then the number is negative and the exponent is:

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

4.从开始是有效的数据位

从开始是最高有效位,所存储的数值计算方法为:

将下面计算的结果加起来:

每个乘以100^(指数-N) (N是有效位数的顺序位,第一个有效位的N=0)

5. 正数计算举例:

SYS@huiche>select dump(123456.783,16) from dual;

DUMP(123456.783,16)

----------------------

Typ=2 Len=6: c3,d,23,39,4f,1f

SYS@huiche>

: 195 - 193 = 2

• 数字

0xd = 13(dec) -1 = 12 > 12 * 100^2 = 120000

0x23 = 35(dec) -1 = 34 > 34 * 100^1 = 3400

0x39 = 57(dec) -1 = 56 > 56 * 100^0 = 56

0x4f = 79(dec) -1 = 78 > 78 * 100^-1 = .78

0x5b = 31(dec) -1 = 30 > 90 * 100^-2 = .003

sum = 123456.783

因为第一个字节(0xc3)大于128, 所以为正数

6.负数计算举例:

SYS@huiche>select dump(-123456.783,16) from dual;

DUMP(-123456.783,16)

------------------------------

Typ=2 Len=7: 3c,59,43,2d,17,47,66

SYS@huiche>

指数 => 0x3c= 62(dec) - 60 = 2

• 数字

0x59 = 89(dec): 101 - 89 = 12 > 12 * 100^2 = 120000

0x43 = 67(dec): 101 - 67 = 34 > 34 * 100^1 = 3400

0x2d = 45(dec): 101 - 45 = 56 > 56 * 100^0 = 56

0x17 = 23(dec): 101 - 23 = 78 > 78 * 100^-1 = .78

0xb = 11(dec): 101 - 71 = 30 > 30 * 100^-2 = .003

sum = 123456.783 (-)

• 最后一个字节不计算在内 0x66 = 102(dec) ,第一个字节(0x3c)小于128, 所以为负数

7.0的存储数字是80

SYS@huiche>select dump(0,16) from dual;

DUMP(0,16)

------------------------------

Typ=2 Len=1: 80

SYS@huiche>

oracle存储一个数字格式,Oracle根本数据类型存储格式研究(二)—数字类型相关推荐

  1. 解决Oracle存储生僻字、oracle生僻字,oracle偏僻字、数据库生僻字,数据库偏僻字

    处理前,乱码,如下图所示 通过以下方法处理: -- 解决Oracle存储生僻字.oracle生僻字,oracle偏僻字.数据库生僻字,数据库偏僻字 -- 只能保证业务系统能正常读取生僻字-- 第一步: ...

  2. oracle 增加一个新分区,oracle 11g 新增分区

    oracle 11g新增了间隔分区.虚拟列分区和引用分区.详细的介绍请查看官方文件: 1. 间隔分区 间隔分区是范围分区的一种扩展.在引入间隔分区之前,DBA 需要显式定义每个分区的值范围,随着分区值 ...

  3. oracle如何查询时间格式,oracle时间格式讨论

    1. oracle对时间格式的数据存贮 Oracle以特定的存储格式来存储时间,占7个字节,与查询显示的时间无关.存贮的时间包括年月日时分秒,最小精度为秒,不存贮秒以下的时间单位.因此在一些前台支持毫 ...

  4. oracle 存储中文 u码,Oracle 汉字 占位

    遇到了一个数据插入长度过长问题,记得大学时候,还说过oracle的不同编码下的的大小分配不是一样的,具体也忘记了,补上,以防下次犯二 1 step 先查看自己的oracle是什么字符集 select ...

  5. oracle有哪些日期格式,Oracle 日期格式

    Oracle 获取当前时间的月份 select extract(year from sysdate) from dual; --oracle 日期参数 --今天 SELECT to_char(SYSD ...

  6. Linux怎么调oracle存储,Linux 环境下Oracle安装与调试(四)之视图、存储过程

    1.视图的介绍和使用 表和视图的区别,表是占用硬盘空间物理表,而视图可以理解为一个虚表,并不存储在硬盘上, 不占用硬盘空间,实际上就是一个查询语句,方便查询. 对视图里面的数据操作(增 删 改) 其实 ...

  7. php 取oracle图片,一个php导出oracle库的php代码

    红色字为变量,我也是边查手册边写的,以前没有接触过,这段小代码用了一个多小时,记录一下 $conn=OCILogon("用户名","密码","(DES ...

  8. oracle可以导出的格式,Oracle导入导出数据的几种方式

    oracle导入导出数据 1.导出dmp格式文件 --备份某几张表 !!!! exp smsc/smsc file=/data/oracle_bak/dmp/bakup0209_2.dmp table ...

  9. oracle 建一个自增序列,Oracle中如何创建使用SEQUENCES自增序列

    Oracle中如何创建使用SEQUENCES Oracle提供了sequence对象,由系统提供自增长的序列号,通常用于生成数据库数据记录的自增长主键或序号的地方. 下面介绍一下关于sequence ...

最新文章

  1. 头条Android面试题,史上最全的Android面试题集锦(五)
  2. 旋转动画 rotate
  3. xarray 笔记:DataArray
  4. 【web安全】第三弹:web攻防平台pentester安装及XSS部分答案解析
  5. Linux之加密和安全
  6. android8 通知呼吸灯_正在消失的功能,为什么越来越多的手机没有呼吸灯?你知道原因吗...
  7. QT保留小数点后几位
  8. koa2与php比较,模仿KOA,用php来写一个极简的开发框架
  9. win10如何做服务器双系统,双系统怎么做?Win7+Win10 双系统安装图文教程
  10. 电脑开机提示计算机无法启动不了,图文详解电脑开机无法进入系统怎么办
  11. GeoServer发布OSM地图
  12. mysql避免回文_谈谈回文子串
  13. CSS参考手册_web前端开发参考手册系列
  14. 猫盘安装群晖synology (by quqi99)
  15. windows 10必装的五款神器
  16. 旗杆的安装方法和流程
  17. guile 操作笔记
  18. WordPress博客无法登陆后台的解决办法
  19. sql按指定符号分割字符串,返回分割后指定索引的第几个元素,象数组一样方便
  20. bzoj1816 扑克牌 贪心(不用二分QvQ)

热门文章

  1. 如何测量太阳距离地球的距离
  2. PHP 文件打开/读取
  3. tigervnc环境搭建
  4. java学习二---对象和内存管理
  5. AppStore新应用上传指南
  6. --Symantec AntiVirus9.0--网上已很难寻的经典防病毒软件
  7. java动态类加载_实现Java动态类载入机制
  8. 02:陶陶摘苹果【一维数组】
  9. javascript无限请求_JAVASCRIPT事件循环
  10. python scrapy框架 简书_python scrapy 实战简书网站