Oracle Database 中关于null值的存储

2014-11-24 18:33:53 · 作者: · 浏览: 0

这里主要验证了number 和 varchar2 两种数据类型null值的存储


先来介绍一下row piece的结构




引用官方文档的一张结构图






通常情况下,不包括(cluster table 和 chain row)一个rowpiece 包括row header 和 column data


关于其他情况,会在以后的研究中陆续放出。


例如:一个rowpiece的前3个字节 3c0203它表示


1个字节的flag
1个字节的lb(itl slot)
1个字节的columncount


如例中
3c=flag=00111100=--HDFL--=header+delete+first+last
02=lb itl slot 0x02
03=column count


列值信息包括:
列的长度,列的value
例如02c102
表示占用2个byte
c102 表示的是具体的值


dump 的信息 可以使用 UTL_RAW.CAST_TO_xxxx 来翻译(感谢itpub iori809的指导)







下面开始验证


首先环境为11.1.0.6 linux x64