oracle中如何避免出现索引列自动转换

 我来答
thain0
2013-05-10 · TA获得超过267个赞
知道小有建树答主
回答量:597
采纳率:0%
帮助的人:533万
展开全部
a列为索引咧,varchar2类型

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)这个上面没有索引,所以就引用不到索引了
索引字段上尽量不要使用函数,如果一定要使用函数的话,那就建函数索引。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式