oracle 大小写问题

本文通过实例演示了在Oracle数据库中进行查询时,表名大小写及是否加引号的区别。发现Oracle对于大写表名默认不区分大小写,但加引号后则严格区分大小写和大小写。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

转载于:https://www.cnblogs.com/cumtgujun/p/7093314.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值