文档解释
ORA-01986: OPTIMIZER_GOAL is obsolete
Cause: An obsolete parameter, OPTIMIZER_GOAL, was referenced.
Action: Use the OPTIMIZER_MODE parameter.
ORA-01986表示,企图使用的优化器指标OPTIMIZER_GOAL已经被废弃。这是一个Oracle 11改进的功能,其优化器目标应该使用新的“创建优化器指导性功能(CDB)”特性。
官方解释
OPTIMIZER_GOAL参数是Oracle 11g中过时的优化器特性。 它被替换为新的“创建优化器指导性特征”,被称为CDB,它提供了比早先版本更灵活和高级的优化器功能。
常见案例
ORA-01986通常发生在尝试使用Oracle 11之前的版本中的优化器指标参数时发生。 尝试使用This parameter can be used when the value of compatible=11.2.0.0.0 or higher.
正常处理方法及步骤
1.根据现有数据库可用性确定compatible参数的值
2.确保执行ALTER SYSTEM SET OPTIMIZER_GOAL=更新优化目标
3.如果必要,可以使用alter session设置会话级参数
4.运行v$optimizer_goal以确认当前应用的优化器指标
5.确认优化器指标被正确设置而不会再受到ORA-01986的影响