我数据库中的有多张表的字段为type,类型:number(8);
现在我想将这些表中的type字段的类型修改为varchar(8);
能不能批量修改。

解决方案 »

  1.   

    批量修改可以做到,但在更改字段类型之前,需要要更改的字段全部为空,或空表,才可以,如果有数据需要先备份到临时表中,更改字段类型后再把数据导回来。
    例如:建立了一下表
    create table T_AA
    (
      SCORE NUMBER(8)
    );
    create table T_BB
    (
      SCORE NUMBER(8)
    );
    --使用以下语句更改字段类型即可
    alter table T_AA modify SCORE varchar2(8);
    alter table T_BB modify SCORE varchar2(8);--如果需要更改的表很多,则可通过查询语句组合更改字段的语句,例如:
    select 'alter table ' || table_name || '  modify SCORE varchar2(8);'
      from dba_tables a
     where table_name in ('T_AA', 'T_BB'); /*如果表名有规律也可使用like 语句得出表名*/也会得到以上结果。
      

  2.   

    select   'alter   table   '   ¦ ¦   table_name   ¦ ¦   '     modify   SCORE   varchar2(8);' 
        from   dba_tables   a 
      where   table_name   in   ('T_AA',   'T_BB');   /*如果表名有规律也可使用like   语句得出表名*/ 这个语句执行了没反应,类型不会修改
      

  3.   

    最快捷的方式是通过第三方工具例如PL_SQL,打开表后直接编辑.