ORA-14132: table cannot be used in EXCHANGE

文档解释

ORA-14132: table cannot be used in EXCHANGE

Cause: An attempt was made to issue an ALTER TABLE EXCHANGE PARTITION | SUBPARTITION command, but the non-partitioned table cannot be used in the EXCHANGE because one or more of the following apply:
– it is a typed table
– it is a temporary table
– it contains ADT columns
– it contains nested-table columns
– it contains REF columns
– it contains array columns
– it is an index-organized table
– it contains LOB columns
– it is a nested table
– it is created with row dependency and the partitioned table is not
– it is created without row dependency and the partitioned table is

Action: Make sure the non-partitioned table does not violate any of the above restrictions for the ALTER TABLE EXCHANGE PARTITION | SUBPARTITION command.

OARA-14132错误是引发的基本错误,由于在数据库中使用了不兼容的EXCHANGE运算符(例如空分区表),而无法解决此问题。

官方解释

ORA-14132:表不能用于EXCHANGE

当以下语句出现错误:

ALTER TABLE

EXCHANGE PARTITION WITH TABLE

当上述表和另一个表存在任何冲突时,将引发ORA-14132错误,包括:

(1)表的数据类型不匹配;

(2)表空间不匹配;

(3)表的存储选项不匹配;

(4)表的IOT / Index Organized Table存储选项不匹配;

(5)空表;

(6)非分区表与分区表交换;

常见案例

案例一:将分区表与非分区表交换

案例二:将两个不同表空间中的表交换

案例三:将不同存储选项的表交换

正常处理方法及步骤

1.尝试确保两个表都有相同的类型,表空间,索引标记,范围和存储选项。

2.如果表存储选项不能匹配,可以尝试使用Alter语句尝试修改表的相关选项,以匹配两个表的存储上的需求。

3.如果表本身是空的,可以使用Alter Table Drop Partition子句来删除该分区,然后在更改表存储属性之前,运行EXCHANGE运算符。

4.如果上述步骤都不起作用,则可以尝试使用Create Table As Select(CTAS)子句来创建新的目标表,并将需要EXCHANGE的数据插入新表,然后使用Alter Table Exchange Partition来交换两个表。

你可能感兴趣的