方法一:
一个汉字在Oracle数据库里占多少字节跟数据库的字符集有关,UTF8时,长度为三.
测试一个汉字在各种字符集中到底占用多少字节:
select lengthb('汉') from dual;
方法二:
select * from nls_database_parameters where parameter ='NLS_CHARACTERSET'
一个英文字母是一个字符,一个中文汉字是几个字符呢?我们知道,一个中文汉字是双字节字符,但它有几个字符与其数据库字符集有关。如果数据库字符集使用单字节US7ASCII,则一个中文汉字是二个字符;如果数据库字符集使用双字节字符集ZHS16GBK,则一个中文汉字是一个字符。有关这一点可以使用 Oracle的函数Substr得到证明。
使用US7ASCⅡ字符集时:
Select substr('东北大学',1,2) from dual;
语句执行结果返回'东'。
使用ZHS16GBK字符集时:
Select substr('东北大学',1,2) from dual;
语句执行结果返回'东北'。
一个汉字在Oracle数据库里占多少字节跟数据库的字符集有关,UTF8时,长度为三.
测试一个汉字在各种字符集中到底占用多少字节:
select lengthb('汉') from dual;
方法二:
select * from nls_database_parameters where parameter ='NLS_CHARACTERSET'
一个英文字母是一个字符,一个中文汉字是几个字符呢?我们知道,一个中文汉字是双字节字符,但它有几个字符与其数据库字符集有关。如果数据库字符集使用单字节US7ASCII,则一个中文汉字是二个字符;如果数据库字符集使用双字节字符集ZHS16GBK,则一个中文汉字是一个字符。有关这一点可以使用 Oracle的函数Substr得到证明。
使用US7ASCⅡ字符集时:
Select substr('东北大学',1,2) from dual;
语句执行结果返回'东'。
使用ZHS16GBK字符集时:
Select substr('东北大学',1,2) from dual;
语句执行结果返回'东北'。