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