如果oracle的字符编码采用GBK,那么一个汉字占两个字节,可如果用的是UTF-8,那么一个汉字占三个字节。要特别注意。大部分情况下建议使用varchar2类型,可以保证更好的兼容性。
GBK字符集下:varchar2(10)可以存五个中文,可以存10个英文,但是用length函数获取长度时实际上获取的是字符的个数,即存五个中文的长度为5,存十个英文的长度为10,
nvarchar2(10)最多可以存十个中文,最多也只可以存10个英文,字符长度也是字符个数,即无论是英文还是中文都是10。
varchar2的长度最多可以设置为4000,nvarchar2的长度最多可以设置为2000,也就是说,同样都保存中文的话,两个类型最大都可以存2000个,同样都保存英文的话varchar2可以存4000个,而nvarchar2只能存2000个。
oracle中建表是自动把varchar类型转化为varchar2类型,进行创建。
varchar也是存储不定长的,和varchar2是同义词,区别在于varchar2是oracle自己开发的一个类型,用于将空字符串当null存储,具有更好的兼容性