比如有一张叫A的表中的字段B是char(40)型的,想把它用SQL语句改成varchar(40)型的,该怎么写?
另外,如果这张表中数据量比较大,有300万条左右,这么改表结构速度会很慢吗?

解决方案 »

  1.   

    alter table yourtable modify a varchar2(40);
      

  2.   

    最好不要这样做,会很消耗资源的,如果还有大量用户在线时.
    这样:
    1. create table new_A (...varchar(40))
    2. alter table new_A nologging
    3. insert /*+ append */ into new _A select .. from A
    4. drop table A
    5, rename new_A to A
      

  3.   

    ALTER TABLE "FIREUSER"."TEST" MODIFY("C" DATE)
      

  4.   

    alter table <表名> modify <字段名> <字段类型>;
      

  5.   

    ALTER TABLE A MODIFY B VARCHAR2(40);你可以试试,长度不变的话,应该不会太慢