ORA-39235: data remap string has already been specified

文档解释

ORA-39235: data remap string has already been specified

Cause: A data remap has already been specified for the indicated column. Only one data remap may be defined for a column.

Action: Remove one of the data remap specifications for the job.

ORA-39235 错误是由于重复指定了相同的数据重新映射字符串引起的。

官方解释

当使用 Oracle Data Pump 加载操作时,在同一个Data Pump会话中,如果指定了多个重新映射字符串时,将会引发ORA-39235 错误,本错误指示指定了一个或多个相同的重新映射字符串。

常见案例

一个常见的案例是,当使用数据泵从一个实例加载到另一个实例时,表空间名称不同:

expdp system/password@source schemas=scott dump file=dpump_dir:exp_employees.dmp PARALLEL=4 remap_tablespace=SCOTT:NEW_DATA_TS remap_tablespace=SCOTT:NEW_DATA_TS

在该案例中,代码将会引发ORA-39235错误,因为表空间remap_tablespace=SCOTT:NEW_DATA_TS被重复指定了两次。

一般处理方法及步骤

要解决此错误,请检查Data Pump命令,确保没有重复指定表空间重新映射字符串,如果担心导出过程中可能会发生多次指定,可以采用以下方法:

1. 建立一个清单或逗号分隔的已映射表空间列表:

tbsp_mapped_list := ”

2. 在每次重新映射时,将其表空间标识加入该列表(重新映射前先检查一下表空间是否已存在于列表中)。

if (instr(tbsp_mapped_list, ‘Scott’) > 0) then remap_tablespace=Scott:NEW_DATA_TS endif endif

3. 在导出完成后,清除列表:

tbsp_mapped_list := ”

你可能感兴趣的