一个奇怪的问题引出oracle对象名的大小写

遇到的问题:
一 用工具建了个表t_aaa(工具生成的create table语句自动为表名加上了引号);然后执行
引用
select * from t_aaa

结果提示“表或视图不存在”;
二 有表A,含列id(列id为小写);执行
引用
select id from A

提示“ORA-00904:  invalid identifier”

结论:
1 oracle在创建对象时,字符都变为大写,除非他被"引住

2 查找对象时,对象名前后不带双引号,oracle自动去查找名字全是大写的对象;

3 如果创建对象时对象名是被"引住的,则对象名严格按引号里的大小写来;并且在操作该对象时也必须为其名字加"(因为第2条)。




所以,可以说, oracle的对象名(表、视图、过程、列名等)是区分大小写的;DDL的双引号影响数据字典里的大小写。比如表,如果是表名叫t_aaA,则通过
引用
select * from t_aaa

引用
select * from t_aaA

引用
select * from "t_aaa"

都是会提示你“表或视图不存在”的;正确的查询方式是:
引用
select * from "t_aaA"


测试用例一:
一个奇怪的问题引出oracle对象名的大小写

测试用例二:
一个奇怪的问题引出oracle对象名的大小写


你可能感兴趣的:(oracle)