天天看点

如何在不停应用的情况下更改表字段的类型

可以通过指定 col_mapping 更改字段类型

CREATE TABLE t AS SELECT ROWNUM ID,e.object_id,e.object_name FROM dba_objects e;

CREATE TABLE t_temp AS SELECT * FROM t WHERE 1=0;

ALTER TABLE t_temp MODIFY object_id VARCHAR2(20);

begin

  -- Call the procedure

  sys.dbms_redefinition.start_redef_table(  uname => 'A',

                                                                              orig_table => 'T',

                                                                              int_table => 'T_TEMP',

                                                                              col_mapping => 'id id,to_char(OBJECT_ID) OBJECT_ID,object_name object_name',

);

end;