当比较不同数据类型的数据时, ORACLE自动对列进行简单的类型转换.

假设 EMPNO是一个数值类型的索引列.

SELECT …

FROM EMP

WHERE EMPNO = ‘123’

实际上,经过ORACLE类型转换, 语句转化为:

SELECT …

FROM EMP

WHERE EMPNO = TO_NUMBER(‘123’)

幸运的是,类型转换没有发生在索引列上,索引的用途没有被改变.

现在,假设EMP_TYPE是一个字符类型的索引列.

SELECT …

FROM EMP

WHERE EMP_TYPE = 123

这个语句被ORACLE转换为:

SELECT …

FROM EMP

WHERE TO_NUMBER(EMP_TYPE)=123

因为内部发生的类型转换, 这个索引将不会被用到!

 

为了避免ORACLE对你的SQL进行隐式的类型转换, 最好把类型转换用显式表现出来. 注意当字符和数值比较时, ORACLE会优先转换数值类型到字符类型.

最新文章

  1. __autoload()尝试加载未定义的类
  2. CodeIgniter 3之Session类库(2)(转)
  3. 【转】rvm安装ruby,gem,rails,之后仍然无法找到rails命令
  4. JavaScript OOP 创建对象的7种方式
  5. windows下忘记mysql的root密码解决方法(图文)
  6. jvm内存回收诡异现象
  7. JSON--stringify() 和 parse() 方法
  8. python项目使用jsonschema进行参数校验
  9. win10 音频设备图形隔离 占用CPU
  10. [Swift]LeetCode838. 推多米诺 | Push Dominoes
  11. rem和em学习笔记及CSS预处理(未完待续)
  12. pycharm破解版
  13. Linq 常用方法解释
  14. Linux各个版本资源下载
  15. C#使用MongoDb来存储文件
  16. arcgis JavaScript 加载 mapbox地图
  17. 学习笔记—MapReduce
  18. Observer 观察者模式 MD
  19. uploadify上传之前判断一个input输入框是否为空
  20. oracle创建表空间、用户、权限

热门文章

  1. 跟我一起使用webpack给一个开源项目添加一个运行入口
  2. PHP配置环境中开启GD库
  3. RegExp实例方法和字符串的模式匹配方法的总结
  4. pycharm多行批量缩进和反向缩进快捷键
  5. No.6 Verilog 其他论题
  6. 【水滴石穿】bstmy-blend-app
  7. Effective Modern C++:07并发API
  8. qt获取本机用户名
  9. 几种常见的flex布局
  10. 一个iOS开发者对tvOS SDK的初探