【问题标题】:oracle how to alter table add partition by range intervaloracle如何按范围间隔更改表添加分区
【发布时间】: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 关键字, 但我不想给子分区

【问题讨论】:

标签: oracle oracle11g


【解决方案1】:

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

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

See this from Oracle Docs

19c 或 12cR2 之前:

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

  1. CREATE 具有 partition 定义的新 TABLE。让我们将此表称为MYTABLE_NEW
  2. INSERT 转换为 MYTABLE_NEW 来自 MYTABLE 的所有数据
  3. RENAME MYTABLEMYTABLE_OLD
  4. RENAME MYTABLE_NEWMYTABLE
  5. DROPMYTABLE_OLD

dbms_redefinition也可以使用

See this from AskTom

Also see this other Answer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-26
    • 2014-10-19
    相关资源
    最近更新 更多