字符串是有全角和半角的,但要根据字节去截取,不要根据字符截取
比如:有字符串'怎12345()么截取字符串'我要截取字节数为11(也就是"怎12345()么")的字符,应该怎么做?

解决方案 »

  1.   

    难办啊
    一个汉字长度认为1啊
    试试substrw
      

  2.   

    SQL> select substrb('怎12345()么截取字符串',0,11) from dual;SUBSTRB('怎12345()么截取字符串
    ------------------------------
    怎12345()么
      

  3.   

    SQL> select substrb('oracle的新方法',0,6) from dual;SUBSTR
    ------
    oracle
      

  4.   

    SQL> select substrb('oracle的新方法',4,8) from dual;SUBSTRB(
    --------
    cle的新
      

  5.   

    试试
    select substr('怎12345()么截取字符串',1,11) from dual好用啊
      

  6.   

    补充说明:substrb截取的是字节,如果数据库字符集是UTF8等多字节字符集(一个汉字占3个或以上字节的系统),截取的时候,需要截取的位数需要根据汉字多少重新计算例子中数据库字符集是一个汉字占据两个字节