ORA-42000: invalid online redefinition column mapping for table “string”.”string”

文档解释

ORA-42000: invalid online redefinition column mapping for table “string”.”string”

Cause: An attempt was made to change the logical structure of a materialized view log, queue table, or a partition by specifying a non-NULL column mapping during online redefinition.

Action: Pass a NULL column mapping parameter.

该错误消息指示在尝试使用Online Redefinition或DBMS_REDEFINITION进行表重定义时,提供的列映射无效。

官方解释

ORA-42000表明无效的列映射,当通过Online Redefinition(DBMS_REDEFINITION过程)重新定义表时,当使用DBMS_REDEFINITION.COLUMN_MAPPING进行列映射时,可能会发生这种情况。

常见案例

当DBMS_REDEFINITION.COLUMN_MAPPING用于定义表重定义过程时出现了一个错误:

SQL> BEGIN

2 DBMS_REDEFINITION.COLUMN_MAPPING( …

3 ‘table_name’,

4 ‘old_column_name’,

5 ‘new_column_name’);

6 END;

出现以下错误:

ORA-42000: invalid online redefinition column mapping for table “table_name”.”old_column_name”

一般处理方法及步骤

1.使用DBMS_REDEFINITION.VALIDATE_COLUMN_MAPPING检查列映射是否有效。如果不有效,它将生成错误消息,指出需要进一步确认的列映射。在修复错误之前,确保数据类型是可以重新定义单位的,并且保证不包含重复列和级联列。

2.如果在操作过程中发现有无效的列映射,请重新定义列映射,或者使用DBMS_REDEFINITION.SET_COLUMN_MAPPING替换旧的无效列映射。

3.重新定义重定义表时,使用DBMS_REDEFINITION.VALIDATE_COLUMN_MAPPINGS函数来确保列映射是有效的。

你可能感兴趣的