- 3
- 0
- 约3.05万字
- 约 14页
- 2016-09-01 发布于河南
- 举报
oracle数字类型
oracle数字类型
Oracle基本数据类型存储格式浅析(二)——数字类型
这篇文章主要描述NUMBER类型的数据和如何在数据库中存储的。
Oracle的NUMBER类型最多由三个部分构成,这三个部分分别是最高位表示位、数据部分、符号位。其中负数包含符号位,正数不会包括符号位。另外,数值0比较特殊,它只包含一个数值最高位表示位80,没有数据部分。
正数的最高位表示位大于80,负数的最高位表示位,,,,于80。其中一个正数的最高位是个位的话,则最高位表示位为C1,百位、万位依次为C2、C3,百分位、万分为依次为C0、BF。一个负数的最高位为个位的话,最高位表示位为3E,百位、万位依次为3D、3C,百分位、万分位依次为3F、40。
数据部分每一位都表示2位数。这个两位数可能是从0到99,如果是数据本身是正数,则分别用二进制的1到64表示,如果数据本身是负数,则使用二进制65到2表示。
符号位用66表示。
上面的这些是我通过DUMP结果总结出来的,对于上面提到的这些关系常数,Oracle之所以这样选择是有道理的,我们后面根据例子也可以推导出来,而且会进一步说明为什么会采用这种方式表示。这里列出的意思是使大家先对NUMBER类型数据有一个大概的了解。
下面我们通过一个例子详细说明:
SQL CREATE TABLE TEST_NUMBER (NUMBER_COL NUMBER);
表已
原创力文档

文档评论(0)