我在sqlplus中运行
select substrb('专家门诊',0,5) from dual
是正确的亚

解决方案 »

  1.   

    SQL> select substr('专家门诊',0,5) "RESULT" FROM DUAL;RESULT
    ----------------
    专家门诊
    以上是我在SQL*PLUS下运行的结果,在toad中运行什么意思??
      

  2.   

    sql*plus中有没有问题呢?
      

  3.   

    我也在toad中运行过了,返回的是‘专’啊~
    应该是数据库本身的设置有些不对吧~   :(
      

  4.   

    sorry 啊 看错了~
    因为一个汉字是4个字节8位,而substrb是针对字节的,所以返回‘专’是应该的。
    substr是字符,一个汉字是一个字符,
    所以select substr('专家门诊',1,1) from dual 返回‘专’
      

  5.   

    varchar2的定义sample:VARCHAR2(5) stores up to 5 bytes of character databytes 是字节,所以'专家门诊'应该是16bytes,
    关于字符、字节、位之间具体的概念,我也有点糊涂了。要查查
      

  6.   

    alter session set nls_...=....  
    忘记了