Oracle大数据量的表存储过程按月份分表后,如何有效率的插入原数据到各个新表?

问题:Oracle用存储过程按月份分表一张千万或亿级大数据的表,分表完后要对原表数据存入新表如何有效率的处理?
我能想到的方法:

1.Java代码里面limit批量取插入

2.存储过程形如limit批量取数据插入新表,但是Oracle没有limit用法。Oracle是子查询,效率低

在该表的时间字段上创建索引
CREATE INDEX IDX_DATE ON 表名(时间字段) parallel 10;

alter index idx_date noparallel;

然后在存储里循环获取各月数据,插入到不同的新表中

可以建一个分区表,查询速度立马上来