一、概念区分
首先要明确一个基础概念,oracle数据库可储存字节也可储存字符,默认储存字节。
区分如下:
- VARCHAR2(100 CHAR),表示最多就可以存储100个汉字
- VARCHAR2(100)与VARCHAR2(100 BYTE)意义相同,最多可以存储多少个汉字就要视数据库字符集编码决定。
二、 根据ORACLE字符集判断能存多少汉字
- 字符集是GBK,一个汉字是2个字节,vachar2(100)可以储存 50 个汉字
- UTF- 8编码:兼容ASCII编码;拉丁文、希腊文等使用两个字节;包括汉字在内的其它常用字符使用三个字节;剩下的极少使用的字符使用四个字节。 vachar2(100)可储存 25~33 个汉字
- UTF-32编码:固定使用4个字节来表示一个字符,但存在空间利用效率的问题。 vachar2(100)可储存 25 个汉字
- UTF-16编码:对相对常用的60000余个字符使用两个字节进行编码,其余的使用4字节。vachar2(100)可储存 25~33 个汉字