一直认为中文再oracle中也是占用两个字符(一个字符占用一个字节),写pl/sql的时候报缓冲区溢出,被同事纠正,一个汉字不止占用2个字节,根据参数的不同,可能占用多个(2~4个)。
可以用下面的sql:
SELECT * FROM v$nls_parameters WHERE PARAMETER=\'NLS_CHARACTERSET\';
- 1
- 2
可以查询到当前数据库的字符集,如果value=ZHS16GBK,那么一个汉字占用2个字节,如果value=AL32UTF8,那么一个汉字占用3个字节。
查占用字符的:
SELECT LENGTH(\'中国\') FROM DUAL;
- 1
- 2
查汉字占用多少字节:
SELECT LENGTH(\'中国\') FROM DUAL;
转自:http://blog.****.net/x6_9x/article/details/52944778