例如表t_table(table_name varchar2(10),table_note varchar2(2000));
执行下面语句:
insert into t_table('t01','t01);
commit;
这样的话两个字段的占用的空间是不是一样大
请达人帮忙分析一下

解决方案 »

  1.   


    不会的,因为varchar2是自动存储的,数据占多少空间,就分配多少空间,不是一下子占满2000个字节空间的。
      

  2.   

    char 是定长,varchar2是非定长的
      

  3.   


    今天有点事出去,很感谢大家
    我知道VARCHAR2是自动存储的,
    就像我的例子,此时两个字段在TABLESPACE占的空间是不是一样大呢?
    如果像你所说的是根据数据自动分配空间,那在定义VARCHAR2类型的时候
    都定义成VARCHAR2(4000),这样不更好吗
      

  4.   

    好像varchar2的读取效率要差些
      

  5.   

    varchar2是变长字符,不同于char (定长类型)
    也就是说varchar2(10)代表你输入的字符最长为10  当你输入"abc"时,长度为3 
    但是你定义了char(10),输入"abc"时就是10了
      

  6.   

    可惜公司不能上CSDN
    我不是问CHAR和VARCHAR2的区别
    我是想问VARCHAR2(10),VARCHAR2(4000)
    如果我存的数据不超过10的话,我定义它为VARCHAR2(4000)
    会不会有影响