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’;
varchar2存储汉字,英文字符,数字在oracle中的多少-风君雪科技博客

ZHS16GBK 

命名格式:<语言><bit><国家字符集>

中文,16位表示一个汉字(两个字节表示一个汉字),汉字编码字符集也经常说的国标

3,答案也就呼之欲出了

varchar2(40):40个字节长度的字符串类型

编码格式:ZHS16GBK

所以:可以存储20个汉字,40个英文字母,40个数字(0~9)


 
 

心之何如,有似万丈迷津,遥亘千里,其中并无舟子可以渡人,除了自渡,他人爱莫能助。