table t1 :
(
 ...
 fldn number(2);
 ...
)create table t2(
  ...
  fldn  varchar2(50); -- number --> varchar2
  ...
);
insert into t2(
 select ...,to_char(fldn) from t2
);
drop table t1;
create table t1(
 ...
  fldn  varchar2(50); -- number
  ...
)
insert into t1(
select * from t2)

解决方案 »

  1.   

    update table_name column_name (old_type,new_type);
    有第三方工具支持数据库在线修改表结构的
      

  2.   

    alter table 表名(modify 列名   varchar2(900) null )
      

  3.   

    在sqlplus中都没能执行成功,为什么啊?
      

  4.   

    insert into t2 values(
     select ...,to_char(fldn) from t2
    );
    drop table t1;
    create table t1 values(
     ...
      fldn  varchar2(50); -- number
      ...
    )
    insert into t1 values(
    select * from t2)
      

  5.   

    set table 表名(modify 列名   varchar2(900) null )
    好像之行成功了,我得执行结果中的汉字全是乱码,看不清楚。
      

  6.   

    lianhg,你写的是什么啊,我看不太明白啊
    是把原来的表删了重建吗?
      

  7.   

    table t1 :
    (
     ...
     fldn number(2);
     ...
    )create table t2(
      ...
      fldn  varchar2(50); -- number --> varchar2
      ...
    );
    insert into t2 values(
     select ...,to_char(fldn) from t2
    );
    drop table t1;
    create table t1(
     ...
      fldn  varchar2(50); -- number
      ...
    );
    insert into t1 values(
    select * from t2
    );
      

  8.   

    SQL> desc test1
      ID                                                 NUMBER(2)SQL> select * from test1;        ID
    ----------
             1
             2
    SQL> create table test2(id varchar2(20));
    SQL> insert into test2 ( select to_char(id) from test1);
    SQL> select * from test2;ID
    --------------------
    1
    2
    SQL> drop table test1;
    SQL> create table test1(id varchar2(20));
    SQL> insert into test1(select * from test2);
    SQL> select * from test1;ID
    --------------------
    1
    2
    SQL> desc test1
     ID                                                 VARCHAR2(20)SQL>