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