文档解释
ORA-40350: One or more 11g models exist
Cause: There are 11g data mining models existing in the database.
Action: Drop 11g data mining models prior to downgrade to 10g.
ORA-40350错误表明,当用户尝试升级现有的Oracle10g数据库时,可能存在一个或多个11g模型。
官方解释
ORA-40350表明当您使用DBMS_MIGRATION.MIGRATE_DATABASE()进行升级时,存在一个或多个11g模型,这将终止数据库升级过程。可能会出现此错误的情况包括当您尝试升级时,创建了一个11g专用的Oracle实例,并尝试将10g的数据库依赖项迁移到新的实例中时。
此外,ORA-40350错误也可能发生,因为迁移过程尝试重新创建Oracle 10g实例中已存在的相应SQL对象,例如表,视图等。
常见案例
ORA-40350错误通常发生在用户尝试将Oracle 10g数据库升级到11g数据库时,其中数据库中存在一个或多个11g模块。此外,它还可能发生,当用户在尝试迁移依赖项时,在目标Oracle 11g实例中创建了一个Oracle 10g模型实例。
一般处理方法及步骤
1. 确定存在哪个11g模型:可以通过sql语句查询dba_objects视图来检查升级过程中存在哪些11g模型。
2. 删除11g模型:需要删除存在的11g模型,然后重新运行DBMS_MIGRATION.MIGRATE_DATABASE()程序。
3. 用新模型重构���语句:使用DBMS_MIGRATION.MIGRATE_OBJECT()重新编写现有SQL语句,这样可以避免存在已被淘汰的deprecated模块。
4. 重新创建依赖项:在新的11g实例中重新创建依赖项,内容可以是表,视图,过程,函数等。
5. 更新控制文件:使用DBMS_MIGRATION.MIGRATE_DATABASE()更新控制文件,以指示存在新的11g模型版本,从而可以正常使用数据库。