oracle 大小寫問題


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM