繁体   English   中英

oracle表中的列表分区

[英]list partitioning in oracle tables

我用默认分区创建了一个表,现在我添加了另一个分区/子分区,然后出现了oracle错误

CREATE TABLE STR_MAINFRAME_DB
( 
    CATEGORY         VARCHAR(100) NOT NULL,
    SUBCATEGORY         VARCHAR(100) NOT NULL
)
PARTITION BY LIST (CATEGORY)
SUBPARTITION BY LIST (SUBCATEGORY)
(
    PARTITION P_DUMMY VALUES (DEFAULT)
    (
        SUBPARTITION S_P_DUMMY VALUES (DEFAULT)  
    ));

我通过使用下面的SQL添加了一个分区,但它引发了错误。

alter table str_mainframe_db add partition p_1 values ('A');

SQL Error: ORA-14323: cannot add partition when DEFAULT partition exists
14323. 00000 -  "cannot add partition when DEFAULT partition exists"
*Cause:    An ADD PARTITION operation cannot be executed when a partition
           with DEFAULT values exists

请帮忙?????????

您不能对现有表进行分区。

您将需要创建一个新的分区表,然后将数据从旧表移到新表。 然后,您可以删除旧表并重命名新表以使用旧表的名称。

根据您的停机时间窗口和应用程序对数据的访问性质,您可能需要使用dbms_redefinition软件包来管理它。 与手动操作相比,这将花费更多时间,但是它带来的开销使旧表可以在线,而新表正在填充。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM