如果不存放很长的数据的话,应该说是没有什么区别
看一下oracle文当中介绍数据行存放结构方面的文章就知道了

解决方案 »

  1.   

    不一样,仔细看看这个:You use the VARCHAR2 datatype to store variable-length character data. How the
    data is represented internally depends on the database character set. The VARCHAR2
    datatype takes a required parameter that specifies a maximum size up to 32767
    bytes. The syntax follows:VARCHAR2(maximum_size [CHAR | BYTE])You cannot use a symbolic constant or variable to specify the maximum size; you
    must use an integer literal in the range 1 .. 32767.Small VARCHAR2 variables are optimized for performance, and larger ones are
    optimized for efficient memory use. The cutoff point is 2000 bytes. For a VARCHAR2
    that is 2000 bytes or longer, PL/SQL dynamically allocates only enough memory tohold the actual value. For a VARCHAR2 variable that is shorter than 2000 bytes,PL/SQL preallocates the full declared length of the variable. For example, if you assign the same 500-byte value to a VARCHAR2(2000 BYTE) variable and to a VARCHAR2(1999 BYTE) variable, the former takes up 500 bytes and the latter takes up 1999 bytes.
      

  2.   

    Small VARCHAR2 variables are optimized for performance, and larger ones are optimized for efficient memory use. The cutoff point is 2000 bytes. For a VARCHAR2 that is 2000 bytes or longer, PL/SQL dynamically allocates only enough memory to hold the actual value. For a VARCHAR2 variable that is shorter than 2000 bytes, PL/SQL preallocates the full declared length of the variable. For example, if you assign the same 500-byte value to a VARCHAR2(2000 BYTE) variable and to a VARCHAR2(1999 BYTE) variable, the former takes up 500 bytes and the latter takes up 1999 bytes
    在2000的时候有一个区分,〉2000的动态分配,有多大,分配多大,小于2000的,eg varchar2(1999),就分配1999