文档解释
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、在所有其他过程失败之后,可以尝试将数据库回滚到一个集成的一致性状态,然后从头再来升级数据库。