ORA-39363: Type evolution could not be preserved for string

文档解释

ORA-39363: Type evolution could not be preserved for string

Cause: Trying to apply each version of the type during import resulted in compilation warnings. The type was successfully re-created to the latest version only.

Action: Export dump files, as well as transportable tablespaces that contain earlier versions of this type, cannot be imported on top of this type definition.

ORA-39363错误码表示在运行9i或10g上的数据库版本转换时,类型进化不能被保留,这明显影响了版本转换的过程。

官方解释

ORA-39363表示在ALTER TYPE之后,DataTypeevolutionmapping是不能被保存(在特定的版本之间)的。要解决这个问题,需要手动将类型进化定义为一个特定的版本,以便保留这种进化。

常见案例

这个错误常常会在运行Database Upgrade Assistant(DBUA)的过程中出现,它会用支持升级但不支持类型进化的方法处理此类型的问题,从而在运行最新版本的DbUA时出现此错误。

一般处理方法及步骤

1、首先,尝试运行Alter type命令,并显式地指定版本,从而解决该错误。

2、其次,如果上述方法不起作用,则可以尝试运行dbms_utility.compile_schema包以强制重新编译目标模式中的所有对象。

3、如果运行Alter type命令时,不可能指定版本,则需要在实施解决方案之前,查找和分析导致DBUA失败的原因。

4、在所有其他过程失败之后,可以尝试将数据库回滚到一个集成的一致性状态,然后从头再来升级数据库。

你可能感兴趣的