oracle避免改变索引列的类型
2024-08-26 11:34:29
当比较不同数据类型的数据时, 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会优先转换数值类型到字符类型.
最新文章
- __autoload()尝试加载未定义的类
- CodeIgniter 3之Session类库(2)(转)
- 【转】rvm安装ruby,gem,rails,之后仍然无法找到rails命令
- JavaScript OOP 创建对象的7种方式
- windows下忘记mysql的root密码解决方法(图文)
- jvm内存回收诡异现象
- JSON--stringify() 和 parse() 方法
- python项目使用jsonschema进行参数校验
- win10 音频设备图形隔离 占用CPU
- [Swift]LeetCode838. 推多米诺 | Push Dominoes
- rem和em学习笔记及CSS预处理(未完待续)
- pycharm破解版
- Linq 常用方法解释
- Linux各个版本资源下载
- C#使用MongoDb来存储文件
- arcgis JavaScript 加载 mapbox地图
- 学习笔记—MapReduce
- Observer 观察者模式 MD
- uploadify上传之前判断一个input输入框是否为空
- oracle创建表空间、用户、权限