假如已创建的表不能再创建分区,只有重新建分区表,然后将数据导入表中,再将表名改为原表名:
1.我的原表名为MONITOR_DATA,现在建临时分区表:
CREATE TABLE GPS_MONITOR_DATA_TMP
(
DATA_ID CHAR(36 BYTE) NOT NULL,
EQUIP_ID CHAR(36 BYTE) NOT NULL,
GPS_DATE DATE NOT NULL,
CREATE_DATE DATE NOT NULL,
SPEED NUMBER(3) NOT NULL,
KILOMETER NUMBER(6,2) NOT NULL,
LNG NUMBER(7,4) NOT NULL,
LAT NUMBER(7,4) NOT NULL
)
PARTITION BY RANGE (GPS_DATE)
INTERVAL (NUMTOYMINTERVAL(1, 'MONTH'))
(PARTITION P1 VALUES LESS THAN (TO_DATE('2015-7-1', 'YYYY-MM-DD')));
按GPS_DATE按月建分区表,因为我的数据是从2015-7-1有的数据,所以开始日期要写2015-7-1
2.创建好表后,将原表数据导入到该临时表
INSERT INTO GPS_MONITOR_DATA_TMP
SELECT * FROM GPS_MONITOR_DATA
3.删除GPS_MONITOR_DATA,将GPS_MONITOR_DATA_TMP改名为GPS_MONITOR_DATA
本文介绍了一种当已创建的表无法直接添加分区时的解决方案。首先创建一个临时的分区表,并详细展示了表结构及分区定义。接着通过插入操作将原有表的数据迁移到新的分区表中,最后删除旧表并将新表重命名为原表名。

1万+

被折叠的 条评论
为什么被折叠?



