oracle中如何避免出现索引列自动转换
1个回答
展开全部
a列为索引咧,varchar2类型
where a = 10改为where a = '10' ,这样就能和索引字段的类型匹配上了
where a = 10改为where a = '10' ,这样就能和索引字段的类型匹配上了
追问
现在,假设EMP_TYPE是一个字符类型的索引列.
SELECT … FROM EMP WHERE EMP_TYPE = 123
这个语句被ORACLE转换为:
SELECT … FROM EMP WHERETO_NUMBER(EMP_TYPE)=123
这个列的索引,还会被引用吗?还有怎么才能引用这个索引?
追答
这样就不会用到索引了,因为索引是建立在EMP_TYPE上的,to_number(EMP_TYPE)这个上面没有索引,所以就引用不到索引了
索引字段上尽量不要使用函数,如果一定要使用函数的话,那就建函数索引。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询