如上图:
sql: select length('汉字'),lengthb('汉字') from dual;
得到的结果为:length('汉字')=4,lengthb('汉字')=4;
lengthb('汉字')=4可以理解但是,为什么length('汉字')=4而不是length('汉字')=2??求解。
数据库字符集信息如下:
OracleSQLselect数据库length

解决方案 »

  1.   

    length()lengthb()一个字符占两个字节。所以为4
      

  2.   

    17:48:30 scott@ORAMIS>select * from v$nls_parameters where parameter = 'NLS_LANGUAGE';
    PARAMETER
    ----------------------------------------------------------------
    VALUE
    ----------------------------------------------------------------
    NLS_LANGUAGE
    SIMPLIFIED CHINESE
    已用时间:  00: 00: 00.93
    17:53:41 scott@ORAMIS>select length('汉字') from dual;
    LENGTH('汉字')
    --------------
                 2
      

  3.   

    lengthb是按字节计算的所以为4,这是对的。但是length是按字符来计算的应该是2才对啊,为什么也是4?