Oracle数据库中有表,表名为大写的DCC_BOM_CLASS,在对该表查询的时候,使用了如下多种查询语句:
- 登陆数据库
1 sqlplus dcc_core/dcc_core@192.168.1.2/orcl
- 执行加引号的大写查询语句
SELECT * FROM "DCC_BOM_CLASS";
查出结果:
ID GUID
---------- ---------------------------------------------
NAME
---------------------------------------------
ALIAS
---------------------------------------------
DESCRIPTION
---------------------------------------------
URI
--------------------------------------------------------------------------------
40 024618df-1c68-4c06-965f-97a72ed3a14f
DataStandardDictionary
????
ID GUID
---------- ---------------------------------------------
NAME
---------------------------------------------
ALIAS
---------------------------------------------
DESCRIPTION
---------------------------------------------
URI
--------------------------------------------------------------------------------
????
http://www.dist.com/dcc/bom/class/DataStandardDictionary
- 执行不加引号的大写查询语句
SELECT * FROM DCC_BOM_CLASS;
查出结果:
ID GUID
---------- ---------------------------------------------
NAME
---------------------------------------------
ALIAS
---------------------------------------------
DESCRIPTION
---------------------------------------------
URI
--------------------------------------------------------------------------------
40 024618df-1c68-4c06-965f-97a72ed3a14f
DataStandardDictionary
????
ID GUID
---------- ---------------------------------------------
NAME
---------------------------------------------
ALIAS
---------------------------------------------
DESCRIPTION
---------------------------------------------
URI
--------------------------------------------------------------------------------
????
http://www.dist.com/dcc/bom/class/DataStandardDictionary
- 执行不加引号的小写查询语句
SELECT * FROM "dcc_bom_class";
查出结果:
ID GUID
---------- ---------------------------------------------
NAME
---------------------------------------------
ALIAS
---------------------------------------------
DESCRIPTION
---------------------------------------------
URI
--------------------------------------------------------------------------------
40 024618df-1c68-4c06-965f-97a72ed3a14f
DataStandardDictionary
????
ID GUID
---------- ---------------------------------------------
NAME
---------------------------------------------
ALIAS
---------------------------------------------
DESCRIPTION
---------------------------------------------
URI
--------------------------------------------------------------------------------
????
http://www.dist.com/dcc/bom/class/DataStandardDictionary
- 执行加引号的小写查询
SELECT * FROM "dcc_bom_class"
输出错误:
SELECT * FROM "dcc_bom_class"
* ERROR at line 1:
ORA-00942: table or view does not exist
上面这4种查询语句中,区别在于大小写和加引号问题,表名字是大写的,当语句中出现小写加引号的表名的时候就提示表不存在了,究其原因。
oracle中的大写为自动转成大写,小写会自动转成大写,加引号的大写不会自动转成大写,加引号的小写不会自动转成大写,因此,前面三条语句都可以正常查出结果,第4条语句查不出来结果。
进一步,做实验验证,在数据库中创建表,语句如下
create table test
(
"id" number(4,2),
id number(4,2)
);
输出
Table created.
查看表:
describe test;
描述如下:
Name Null? Type
----------------------------------------- -------- ----------------------------
id NUMBER(4,2)
ID NUMBER(4,2)
可以看见,表中有两个ID字段,一个是小写的id,一个是大写的ID。
仅以此篇,记录学习笔记。
博客:https://github.com/cumtgujun/wiki/wiki/oracle-%E5%A4%A7%E5%B0%8F%E5%86%99%E9%97%AE%E9%A2%98