create table new_tbl_user
(
 USERID                           NUMBER(5)         NOT NULL, 
 THIRDPARTY                       NUMBER(3)         NOT NULL, 
 MAXUSERS                         NUMBER(10)        NOT NULL, 
 CURUSERS                         NUMBER(10)        NOT NULL, 
 AUTHMETHOD                       NUMBER(5)         NOT NULL, 
 AUTHREALM                        VARCHAR2(32)      NOT NULL 
)insert into new_tbl_user select * from tbl_user;rename new_tbl_user to tbl_user;

解决方案 »

  1.   

    重新建一张AUTHREALM的长度减少的表,其余结构都一样
    然后insert into new table select * from old table
    alter 是不行的
      

  2.   

    Sorry ,忘了 rename 
    呵呵
    速度应该不会慢吧 表有多少纪录
    只有这个办法了
      

  3.   

    在这张表再建一个字段,把数据update到新字段中,然后删除老字段,把新字段重命名就可以了
      

  4.   

    或者
    alter table tbname add column coltemp varchar2(32);
    update tbname set coltemp=AUTHREALM;
    update tbname set AUTHREALM='';
    alter table tbname modify(AUTHREALM varchar2(32));
    update tbname set AUTHREALM=coltemp;
    alter table tbname drop column coltemp;