create table new_table_name as select * from tab1;
delete from tab1;
commit;
alter table tab1 modify (aa varchar2(20));
insert into tab1 select * from new_table_name;

解决方案 »

  1.   


      你aa字段数据类型为Number(14),更改数据字段类型为VarChar2(20),
    这样你的长度已经打过原先Number(14),这样数据就不会丢失。
    直接发语句。
      ALTER TABLE tab1 MODIFY (AA VarChar2(20));
    不放心,你就可以建立个临时表做备份。
      create table a as select * from tab1;
    这样你就放心去做吧。
      

  2.   

    应该可以直接修改,但安全起见最好先备份
    ALTER TABLE tab1 MODIFY (AA VarChar2(20))
      

  3.   

    SQL> create table bb (id number(14));Table createdSQL> insert into bb values (123);1 row insertedSQL> alter table bb modify id varchar2(20);alter table bb modify id varchar2(20)ORA-01439: 要更改数据类型,则要修改的列必须为空 (empty)SQL> truncate table bb;Table truncatedSQL> alter table bb modify id varchar2(20);Table altered所以先要清空数据,才能修改类型
      

  4.   

    alter table tbname add (col varchar2(20));
    update tbname set col=to_char(aa);
      

  5.   

    谢谢大家的帮忙!!
          我采用了tcmis(肖锋)的方法,他的方法比较通俗易懂。
          另外beckhambobo(beckham)的回复也起到很大的作用。
          还有就是 LGQDUCKY(飘) 他帮助我很多的问题。
                                               谢谢大家!!