改为varchar2(40),中文不是占两个字节吗?当然只能输入十个中文字符了

解决方案 »

  1.   

    不会吧~!varchar2(40)不就行了吗?
      

  2.   

    alter table 表名 modify 列名 VARCHAR2(40);
      

  3.   

    create table t_name (v varchar2(20 char));
      

  4.   

    注意你的字段長度是字節還是字符數目拉。
    VARCHAR2( size)
    [BYTE | CHAR]Variable-length character string having maximum
    length size bytes or characters. Maximum size is
    4000 bytes, and minimum is 1 byte or 1 character.
    You must specify size for VARCHAR2.
    BYTE indicates that the column will have byte
    length semantics; CHAR indicates that the column
    will have character semantics.
      

  5.   

    alter table 表名 modify 列名 VARCHAR2(40);
      

  6.   

    由于字符级而定的,你的数据库是英文字符级一个中文字符占2个字节,只要修改
    数据库字符级成中文就可以一个中文字符占1个字节。修改字符级:
    SQL> SHUTDOWN IMMEDIATE;   
    SQL> STARTUP MOUNT;
    SQL> ALTER SYSTEM ENABLE RESTRICED SESSION;
    SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
    SQL> ALTER DATABASE OPEN;
    SQL> ALTER DATABASE CHARACTER SET <new_character_set_name>;
    SQL> SHUTDOWN IMMEDIATE;   -- or NORMAL
    SQL> STARTUP;
      

  7.   

    把varchar2(20) 改为varchar2(40)
      

  8.   

    as follows:alter table YourTable
    modify (YourField varchar2(40);
      

  9.   

    查看字符集是否AMERICAN_AMERICA.ZHS16GBK 
    其实安装oracle已提示安装哪种字符集了其次可以修字符宽度:
    alter table table_name modify column_name varchar2(40)