发布网友 发布时间:2023-05-17 13:55
共1个回答
热心网友 时间:2023-09-14 15:53
DUMP函数的输出格式类似:
类型 <[长度]> 符号/指数位 [数字 数字 数字 数字 ]
各位的含义如下:
类型: Number型 Type= (类型代码可以从Oracle的文档上查到)
长度:指存储的字节数
符号/指数位
在存储上 Oracle对正数和负数分别进行存储转换:
正数 加 存储(为了避免Null)
负数 被 减 如果总长度小于 个字节 最后加一个 (是为了排序的需要)
指数位换算:
正数 指数=符号/指数位 (最高位为 是代表正数)
负数 指数= 第一字节
从<数字 >开始是有效的数据位
从<数字 >开始是最高有效位 所存储的数值计算方法为
将下面计算的结果加起来
每个<数字位>乘以 ^(指数 N) (N是有效位数的顺序位 第一个有效位的N= )
举例说明
SQL> select mp( ) from al;
DUMP( ) Typ= Len= :
<指数>: =
<数字 > = * ^( )
<数字 > = * ^( )
<数字 > = * ^( )
<数字 > = * ^( )
<数字 > = * ^( )
SQL> select mp( ) from al;
DUMP( ) Typ= Len= :
<指数> = (最高位是 代表为负数)
<数字 > = * ^( )
<数字 > = * ^( )
<数字 > = * ^( )
<数字 > = * ^( )
<数字 > = * ^( )
( )
现在再考虑一下为什么在最后加 是为了排序的需要 在数据库中实际存储为
而 在数据库中实际存储为
lishixin/Article/program/Oracle/201311/18253