Check the below link. but better first you do it on Dev/test and then implement on Production
Although Oracle-base examples are usually pretty good that particular example is a TERRIBLE way to partition an existing table.
A partition split operation always creates TWO new partitions/segments for the data. That means that the first split operation will create ONE useful partition and MOVE the remaining data to a new segment. Then the second split operation will use some of that remaining data to create ONE useful partition and MOVED the rest to yet another new segment.
After 5 split operations the final partition created will have had its data moved FIVE times.
1st split A => A1, B
2nd split A1 => A2, C
3rd split A2 => A3, D
4th split A3 => A4, E
5th split A4 => A5, F
That data that is now in partition A5 was, at one time in ALL of the other A? partitions.
We have a non partitioned table in our production DB. Now we need to partition that table. Please suggest some solution how can we partition that table as that table is the main table for the application.
Asit K. Mohanty
The simplest way is to just create a new table and INSERT the data into it from the old table. You will need an outage window for the operation. After the new table is populated you can rebuild the constraints and indexes, rename/drop the original table and rename the new table to the old name.
You could also export the table data and import it into a new partitioned table.
The short answer is: ALL of the data has to be moved to new segments. If ANY of the existing data is old and ready to be archived then now is the time to do it. Simply don't move that data to the new table.