char:分配固定的长度,不受数据长度影响;
varchar2(n):长度最大n,但数据长度小于n时,只占用实际长度;

解决方案 »

  1.   

    char(n)      是固定长度(n)   
    没一个char(n)占用相同存储空间n
    如果你输入的字符串长度 < n 系统将自动帮你补足空格varchar(n)   是指长度最大 为 n,也就是不定长
    一个空的varchar(1000) 和 一个空的 varchar(2),占用相同的存储空间在查询做比较的时候,如果有char型的字段,特别需要注意:CHAR datatype:'abc'='abc  '
    VARCHAR2 datatype:'abc'<'abc  '
    以上仅支持标准的ascii字符nchar ,nvarchar是oracle 为了多国语言支持,他们占用的空间比char,varchar多
    但是可以存储任何形式的字符串。
      

  2.   

    varchar2 是Oracle自己的其用法同VARCHAR相同