关于oracle中varchar2与nvarchar2的一点认识

今天在oracle 10g下测试了下varchar2与nvarchar2这两种类型,网上有不少关于这两种类型的区别的帖子,我仍是本身测试了下。数据库

varchar2(size type),size最大为4000,type可为char或者byte,默认是byte。oracle

varchar2最多存放4000字节的数据,无论type是char仍是byte。因此若是你设置varchar2(4000 char),你能够存入4000个字母,可是不能存入4000个汉字。若是数据库字符集编码是GBK,那么varchar2最多能存放2000个汉字,若是字符集编码是UTF-8,那么则只能最多存放1333个汉字了。测试

nvarchar2(size),size最大值为2000,单位是字符,并且无论是汉字仍是字母,每一个字符的长度都是2个字节。因此nvarchar2类型的数据最多能存放2000个汉字,也最多只能存放2000个字母。而且nvarchar2不一样于varchar2,他不受数据库字符集的影响。编码

 

另外若是咱们把A1,A2都设为varchar2(4000),而且这两个字段的内容长度都超过了2000字节,那么使用select A1||A2 from table这样的语句时,由于结果超过了4000字节,因此会报错。table

相关文章
相关标签/搜索