一般情况下使用者在进行 Oracle开发或管理里都不会对ORACLE对像名大小写进行区别因为ORALCE在普通情况下会将所有小写都转换为大写进行处理所以可以说是大小写不敏感的但是实际ORACLE内部有它一套完整的对像名处理方式本文将从实例进行分析与探讨ORACLE对像名大小写敏感性的处理机制
可能很多人在工作已经了解到ORACLE在创建对像时是可以加引号的如果不加引号则不能使用特别字符只能使用以字母开头的命名如果加了引号就可以在对像名里使用任何字符包括数字开头下划线逗号等等在导出 SQLSERVER的对像创建脚本时一般是加了引号的所以经常有人说脚本在ORACLE中运行后对像不能访问的问题
注
本文是以ORACLE为测试分析版本
本文中提到的ORACLE对像名包括ORACLE中的表名视图名字段名函数名等等
以下为创建表及访问使用不同命名方式的一个实例测试结果如下
测试结果汇总
√表示允许访问×表示不允许访问
总结
分析结论
ORACLE在创建对像时如果没有加引号对存入数据字典时都会将对像名小写字母转换成大写字母存储如mytable将转换成MYTABLE如果创建时加了引号则以引号内的实际字符存储
访问时如果没加引号则会将小写字母转换成大写字母再访问如mytable将转换成MYTABLE如果加了引号则以引号内的实际字符访问
ORACLE在读取数据字典时只要发现对像名里有小写字母或者是除字母汉字以外开头的字符都认为是大小写敏感的并且要求在访问时需要加上引号