我创建了一个带默认分区的表,现在我正在添加另一个分区/子分区,然后我得到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
请帮忙?????????
答案 0 :(得分:1)
您无法对现有表进行分区。
您需要创建一个新的分区表,然后将数据从旧表移动到新表。然后,您可以删除旧表并重命名新表以使用旧表的名称。
根据您的停机时间窗口和应用程序对数据的访问权限,您可能需要使用dbms_redefinition
程序包来管理它。它需要花费更多的时间而不是手动操作,但它所带来的开销允许旧表在新表填充时保持在线状态。