oracle中怎样修改varchar2字段为clob字段,sql语句改怎么写呢?

解决方案 »

  1.   

    alter table table_name 
         modify col_name clob;但有可能有些类型间不能转换,尤其是列中有数据的
      

  2.   

    我试过楼上的方法了,oracle 10G 提示:数据类型的更改无效
      

  3.   

    有数据库的小插件吗?PL/SQL,可以直接修改数据类型的。
      

  4.   

    备份-〉drop column -〉add -〉导入
      

  5.   

    也可以不备份  
    新建一个clob字段 tempclm;
    update set oldclm=tempclm;
    drop oldclm;
    修改tempclm字段名。
      

  6.   


    要是没有数据的话直接用以下语句即可  alter   table tb_test modify permile number(5,2);  但是有数据的话 就不能用上面方法了,  alter table tb_test add permile_temp number(5,2)  update tb_test set permile_temp=permile;  alter table drop column permile;  alter table test rename column permile_temp to permile;  这种方法会使列名发生变化,而且字段顺序增加 有可能发生行迁移,对应用程序会产生影响  以下方法是比较好的方法  不用使列名发生变化 也不会发生表迁移,但这个有个缺点是表要更新两次  如果数据量较大的话 产生的undo和redo更多 ,前提也是要停机做  要是不停机的话 ,也可以采用在线重定义方式来做  以下是脚本:  alter table tb_test add permile_temp number;  Add/modify columns  alter table tb_test modify PERMILE null;  update tb_test set permile_temp=permile,permile=null;  commit;  alter table tb_test modify permile number(5,2);  update tb_test set permile=permile_temp,permile_temp=null;  commit;  alter table tb_test drop column permile_temp;  alter table tb_test modify PERMILE not null;  select * from tb_test ;
      

  7.   

    最简单的方式,先add 一个column, 赋值,再drop column
    SQL> create table t(id int, col2 varchar(32));Table created.SQL> insert into t values(1, 'iihero');1 row created.SQL> alter table t add col3 clob;Table altered.SQL> update t set col3 = col2;1 row updated.SQL> alter table t drop column col2;Table altered.SQL> select * from t;        ID
    ----------
    COL3
    --------------------------------------------------------------------------------
             1
    iihero
      

  8.   

    怎么最近老发些有这么多人问这个问题啊,一:没有数据的话,直接修改alter table table_name modify var_col clob;
    二:有数据的话,先创建一个表将表中数据备份出来,然后在将此列值类型更改掉,清空列值,然后在插入回来。