【发布时间】:2017-04-14 21:38:52
【问题描述】:
我已经搜索了很多,但我没有找到关于如何 向现有表添加范围分区
alter table myuser.mytable
add PARTITION BY RANGE (mynumber) INTERVAL (1)
( PARTITION p1 VALUES LESS THAN (108))
这给了我 ORA:14150 错误,缺少 SUBPARTITON 关键字, 但我不想给子分区
【问题讨论】:
我已经搜索了很多,但我没有找到关于如何 向现有表添加范围分区
alter table myuser.mytable
add PARTITION BY RANGE (mynumber) INTERVAL (1)
( PARTITION p1 VALUES LESS THAN (108))
这给了我 ORA:14150 错误,缺少 SUBPARTITON 关键字, 但我不想给子分区
【问题讨论】:
编辑:在 19c 和 12cR2 上,这可以使用 ALTER TABLE 的 MODIFY 子句来完成
ALTER TABLE myuser.mytable MODIFY
PARTITION BY RANGE (mynumber) INTERVAL (1)
( PARTITION p1 VALUES LESS THAN (108)
PARTITION p2 VALUES LESS THAN (109))
ONLINE
UPDATE INDEXES
19c 或 12cR2 之前:
如果您现有的表是非分区的,您将必须:
CREATE 具有 partition 定义的新 TABLE。让我们将此表称为MYTABLE_NEW
INSERT 转换为 MYTABLE_NEW 来自 MYTABLE 的所有数据
RENAME MYTABLE 到 MYTABLE_OLD
RENAME MYTABLE_NEW 到 MYTABLE
DROPMYTABLE_OLD
或
dbms_redefinition也可以使用
【讨论】: