ZHS16GBK字符集格式下,varchar2(size) 可以存储 size/2个汉字 。也就是说varchar2(40)存储20个汉字。
分析如下:
1,首先 varchar2(size)释义:
可变长度的字符串,其最大长度为size个字节;size的最大值是4000,而最小值是1;你必须指定一个VARCHAR2的size;
--NVARCHAR2(size)可变长度的字符串,依据所选的国家字符集,其最大长度为size个字符或字节;size的最大值取决于储存每个字符所需的字节数,其上限为4000;你必须指定一个NVARCHAR2的size;
2,检查oracle数据库所采用的字符集
考虑到不同的字符集所占用的大小会不一样
select parameter, value from nls_database_parameters where parameter like 'NLS_CHARACTERSET';
ZHS16GBK
命名格式:<语言><bit><国家字符集>
中文,16位表示一个汉字(两个字节表示一个汉字),汉字编码字符集也经常说的国标
3,答案也就呼之欲出了
varchar2(40):40个字节长度的字符串类型
编码格式:ZHS16GBK
所以:可以存储20个汉字,40个英文字母,40个数字(0~9)