可不可以带数据更改正表结构啊,我更改时,提示我要更改的列必须为空,我是将字符型改为数值型,是不是有什么第三方软件吗,帮忙

解决方案 »

  1.   

    另加一列,copy过去然后修改了再copy过来。
      

  2.   

    表中有数据时不能改结构,除非是将列加宽或者列没有数据,下面提供一个方法:
    1、表那一列和主键备份到一个表中,如源表为maintab,主键为pk,要修改的列为mcol,则备份方法为:
    SQL> CREATE TABLE bak_maintab AS SELECT pk,mcol FROM maintab;2、清空要修改的列
       UPDATE maintab SET mcol='';
       COMMIT;3、修改表结构
       ALTER TABLE maintab MODIFY (mcol NUMBER(10));4、用备份出来的数据更新maintab:
       UPDATE maintab m
          SET mcol=(SELECT mcol FROM bak_maintab
                     WHERE pk=m.pk)
         WHERE pk IN(SELECT pk FROM bak_maintab);
       COMMIT;
    5、检查更新后的数据
       SELECT pk,mcol FROM maintab;6、删除bak_maintab;
       DROP TABLE bak_maintab;