注意你的字段長度是字節還是字符數目拉。 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.
alter table 表名 modify 列名 VARCHAR2(40);
由于字符级而定的,你的数据库是英文字符级一个中文字符占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;
把varchar2(20) 改为varchar2(40)
as follows:alter table YourTable modify (YourField varchar2(40);
查看字符集是否AMERICAN_AMERICA.ZHS16GBK 其实安装oracle已提示安装哪种字符集了其次可以修字符宽度: alter table table_name modify column_name varchar2(40)
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.
数据库字符级成中文就可以一个中文字符占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;
modify (YourField varchar2(40);
其实安装oracle已提示安装哪种字符集了其次可以修字符宽度:
alter table table_name modify column_name varchar2(40)