ORACLE 执行计划的问题
我用的数据库是ORACLE 9.2.0.1.0版本,optimizer_mode是:CHOOSE
在执行以下语句的时候:
SQL文1:
select NM_VALIDATION_DISP, VALIDATION_VALUE
from TABLE_MNG
where
VALIDATION_VALUE between 2 and 9 and NM_VALIDATION = 'v_inst_sts_tp'
order by VALIDATION_VALUE
正常通过。
但是换成如下语句:
SQL文2:
select NM_VALIDATION_DISP, VALIDATION_VALUE
from TABLE_MNG
where
NM_VALIDATION = 'v_inst_sts_tp' and VALIDATION_VALUE between 2 and 9
order by VALIDATION_VALUE
就报错了,原因是:SQL文执行从条件前往后执行,VALIDATION_VALUE这个字段里有非数字的字符。
于是我将:optimizer_mode改成:ALL_ROWS
SQL文1可以通过,SQL2文却不行了。
原因可能是:SQL文执行从条件后往前执行了吧。
不知道有没有表达清楚。
请大侠指教,不胜感激。