Oracle中varchar2 nvarchar2 小结
Oracle中varchar2 nvarchar2
VARCHAR2(size),可变长度的字符串,其最大长度为 size 个字节。size 的最大值是 4000,而最小值是 1。您必须指定一个 VARCHAR2 的 size.
NVARCHAR2(size),可变长度的字符串,依据所选的国家字符集,其最大长度为 size 个字符或字节。size 的最大值取决于存储每个字符所需要的字节数,其上限为 4000 个字节。您必须为 NVARCHAR2 指定一个 size。
二者的主要区别,在于NVARCHAR2 与所选的字符集相关.
NVARCHAR2 (size)测试如下:
测试环境:
测试数据库字符集: 通过SIMPLIFIED CHINESE_CHINA.ZHS16GBK得到为:
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
表table1中存在字段titile, 类型为:nvarchar(50),
该字段内容为:1000多字长短信测试
执行测试sql: select lengthb(title) from table1
得出结果:title的长度是22
由此可知字段title中 一个汉字 跟一个英文数字 一样占两个字节.也就是说在SIMPLIFIED CHINESE_CHINA.ZHS16GBK这个字符集下, NVARCHAR2(size) 的size的最大值为4000/2=2000,最多可存贮2000个字符.
通过相同方式的测试可知: varchar2(size) 中每个中文汉字占2个字节,英文数字或者字母占一个字节,所以varchar2(size)中 size的最大值可以为4000