oracle如何更改表按范围间隔添加分区

Tho*_*mas 2 oracle oracle11g

我已经搜索了很多,但我没有找到有关如何将范围分区添加到现有表的信息

alter table myuser.mytable
add PARTITION  BY RANGE (mynumber) INTERVAL (1)
( PARTITION p1 VALUES LESS THAN (108))  
Run Code Online (Sandbox Code Playgroud)

这给了我 ORA:14150 错误,缺少 SUBPARTITON 关键字,但我不想给出子分区

Aki*_*aki 5

编辑:MODIFY在 19c 和 12cR2 上,这可以使用以下子句来完成ALTER TABLE

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
Run Code Online (Sandbox Code Playgroud)

从 Oracle 文档中查看此内容

19c 或 12cR2 之前:

如果您现有的表是未分区的,您将必须:

  1. CREATE一个TABLE带有partition定义的新的。我们称这张表为MYTABLE_NEW
  2. INSERTMYTABLE_NEW所有数据中MYTABLE
  3. RENAME MYTABLEMYTABLE_OLD
  4. RENAME MYTABLE_NEWMYTABLE
  5. DROP MYTABLE_OLD

或者

dbms_redefinition也可以用

请参阅 AskTom 的内容

另请参阅另一个答案