char表示定长存储,长度不够的用空格补充,最多可存储2000字节
varchar2表示不定长存储,它表示字段定义长度小于等于你的存储数据长度
两者各有优缺点,最多可存储4000字节
据tom同志建议,在任何时候都不要使用char,即使是单字节的字段,原因是因为不论是在表段,还是在索引段中,char都会占用最大的空间.
另外char类型还会带来混乱,其原因与字符串比较的规则有关.
varchar2的缺点:容易引起行迁移的问题.就是指数据在更新时,更新的内容超的块存储容量,必须要提供一个新块才能继续存储,那么字段的数据,就产生分块存储,引起了所谓的行迁移的问题.
varchar2和char类型支持两种指定长度的方法:
用字节指定:varchar2(12 byte):表示支持最多12字节的数据
用字符指定:varchar2(12 char):表示支持最多12字符数据.可能是多达40字节的信息.
该定义的默认行为是根据参数: NLS_LENGTH_SEMANTICS来指定默认值的.