修改表字段 col1 char(8)--->char(14);该字段为分区列。create table tab1 (pid char(18),name varchar2(20),col1 char(8))
partition by list (col1)
 ( partition RISKAMOUNT_P33 values ('11111111'),
   partition RISKAMOUNT_P34 values ('22222222'),
  partition RISKAMOUNT_P35 values (DEFAULT));alter table  tab1  modify (col1 CHAR(14));ORA-14060: 不能更改表分区列的数据类型或长度
该表数据量比较大,这种情况下怎么更改对系统的影响最小。

解决方案 »

  1.   

    新建个表,
    create table tab1 (pid char(18),name varchar2(20),col1 char(14))
    partition by list (col1)
    ( partition RISKAMOUNT_P33 values ('11111111'),
      partition RISKAMOUNT_P34 values ('22222222'),
      partition RISKAMOUNT_P35 values (DEFAULT)); 
    全部插入进去。
    再删原来的表,再改名
      

  2.   

    没办法,我知道的就只能这样了,分段commit吧。期待高人更完美的解决方案