vchar2貌似挺常用的
如题如题如题~~~~

解决方案 »

  1.   

    跟字符编码有关,如果是utf-8应该是3,gbk应该是2
      

  2.   

    你在建表的时候直接指定字符的个数就行了,这样的话不管汉字还是英文,都是100个
    create table product
    (
        product_name varchar2(100 char)
    );
      

  3.   

    不同字符集,汉字占位长度不同。你可以测一下:
    SELECT LENGTH ('字') FROM DUAL
      

  4.   

    SQL> SELECT LENGTH ('字') FROM DUAL;LENGTH('字')
    ------------
               1SQL> SELECT dump ('字') FROM DUAL;DUMP('字')
    ---------------------
    Typ=96 Len=2: 215,214SQL>
      

  5.   


    scott@TBWORA> select length('罗') from dual;LENGTH('罗')
    ------------
               1scott@TBWORA> select lengthb('罗') from dual;LENGTHB('罗')
    -------------
                3scott@TBWORA> SELECT dump ('字') FROM DUAL;DUMP('字')
    --------------------------------------------------
    Typ=96 Len=3: 229,173,151
      

  6.   

    select lengthb('罗') from dual;
    正解~~跟你设定的服务器字符集有关。
    如果想存储实际字符数,可以使用nvarchar2