求助关于 OPTIMIZER_FEATURES_ENABLE的设定会影响sql执行报错
oracle版本 11
OPTIMIZER_FEATURES_ENABLE = 10.2
如下sql
select
to_date(col1,'yyyymmdd')
from (
select
to_char(table1.CUR_MON, 'YYYYMM') || '01' as col1
from
table1
where
table1.CUR_MON is not null
)
table1.CUR_MON 是 date 类型,, 有null值的数据,
现在的问题是在客户环境,执行sql 会报错 ora-01840 ,,
如果在客户环境 把 OPTIMIZER_FEATURES_ENABLE 改成 9.2, 就不会报错了.
想请教各位 为什么会报错,条件里已经去除null的数据了
而且这段sql 我换成测试环境 这个错误是无法再现的...只有在客户环境才会出错.
公司测试环境和客户环境的数据库版本是一样的
如果不修改sql,,, 从oracle优化策略角度,比如做表分析什么的 可不可以解决这个错误,,总是感觉这个错误很奇怪,,不应该发生.
因为客户环境 暂时无法访问,所以不能去试验,,现在客户那边想知道 错误原因和解决办法(不修改sql)
另外说下关于 ora-01840 错误,,,可以执行这段sql select to_date('01','YYYYMMDD') from dual;