But, for less down time you can use this method
Say you have a table
Create a temporary table while database is in restricted mode (To avoid simultaneous operations).Code:create table test2 ( OWNER VARCHAR2(30), OBJECT_NAME VARCHAR2(128), SUBOBJECT_NAME VARCHAR2(30), OBJECT_ID NUMBER, DATA_OBJECT_ID NUMBER, OBJECT_TYPE VARCHAR2(18), CREATED DATE, LAST_DDL_TIME DATE, TIMESTAMP vARCHAR2(19), STATUS VARCHAR2(7), TEMPORARY VARCHAR2(1), GENERATED VARCHAR2(1), SECONDARY VARCHAR2(1)) partition by range (object_id) (partition RANGE_1 values less than (15000), partition RANGE_2 values less than (20000), partition RANGE_3 values less than (MAXVALUE) ) enable row movement;
Code:create table test3 nologging as select * from test2; drop table test2; rename test3 to test2;
Remember to keep Indexes, constraints, triggers and other associated objects. Validate after rebuilding. Export the table before doing the operation.




Reply With Quote