请教:nvarchar2类型字符串不是英文汉字都是用两个字节存储的,但是使用datalength函数计算nvarchar2类型字符串的长度的时候却是英文字母长度为1,汉字长度为2。这是什么原因啊?

解决方案 »

  1.   

    datalength?datalength是mssql的吧
    oracle是length吧?
      

  2.   

    Oracle中的字符函数中,有一类函数是求字符长度的函数,length、lengthB、lengthC、length2、length4几个函数中比较常用的是length、lengthB。他们的含义分别是:
    Length函数返回字符的个数,使用定义是给定的字符集来计算字符的个数
    LENGTHB给出该字符串的byte
    LENGTHC使用纯Unicode
    LENGTH2使用UCS2
    LENGTH4使用UCS4
      

  3.   

    length计算的是字符长度,我要计算字符串占用了多少个字节的长度
      

  4.   

    谢谢你 可是datalength这个函数的功能是什么  oracle也有这个函数
      

  5.   

    扯吧,我oracle从没见过这函数,试了下也不行,mssql才有
      

  6.   

    select lengthb('aa哈哈'),datalength('aa哈哈') from dual
      

  7.   

    不会吧 这个sql在我这个pl/sql里是可以执行的啊
      

  8.   

    哦 我这是在pl/sql developer 里面执行的  用sql/plus确实找不到这个函数