数据库中某张表的一个字段,类型为Varchar2(30 Byte),我想知道这样可以存储多少个英文字线,或多少个中文字母?为什么?

解决方案 »

  1.   

    varchar2是Oracle中的吧?
      

  2.   

    1.varchar2把所有字符都占两字节处理(一般情况下),varchar只对汉字和全角等字符占两字节,数字,英文字符等都是一个字节;
    2.VARCHAR2把空串等同于null处理,而varchar仍按照空串处理;
    3.VARCHAR2字符要用几个字节存储,要看数据库使用的字符集,
    大部分情况下建议使用varchar2类型,可以保证更好的兼容性。针对你的问题,Varchar2(30 Byte)可以存30个英语字母,15个中文字
      

  3.   

    如果是SQL SERVER的话varchar(30)能存储15个汉字,30个字母。
      

  4.   


    declare @t varchar(30)
    set @t=replicate('中国',20)
    select @t
    /*
    中国中国中国中国中国中国中国中
    */
    declare @m varchar(30)
    set @m=replicate('abcde',20)
    select @m
    /*
    abcdeabcdeabcdeabcdeabcdeabcde
    */SQL SERVER 中varchar(30) 能存储30个字母或是15个汉字。
    在Oracle中的varchar2(30)我估计也是一样的,你可以自行测试一下。