今天碰到個問題,查詢數據的時候,顯示表不存在,在可視化窗口確實能看見。試着給表名加個引號,發現能成功查詢數據了。上網查詢原因如下:
1、oracle表和字段是有大小寫的區別。oracle默認是大寫,如果我們用雙引號括起來的就區分大小寫,如果沒有,系統會自動轉成大寫。
2、我們在使用navicat使用可視化創建數據庫時候,navicat自動給我們加上了“”。這樣我們在創建數據庫時實際的代碼是這樣的:(通過到處sql語句的文件,這樣就不難理解我們為什么找不到表了。)
DROP TABLE "ROOT"."user"; CREATE TABLE "ROOT"."user" ( "userid" NUMBER(2) NOT NULL )
這是通navicat可視化創建表的結果,其他sql工具未做測試。
如果我們通過手動寫sql創建,即使表名寫成小寫(注意:沒有引號),oracle數據庫會自動轉換成大寫,字段也一樣。
如果sql中我們給表名或者字段名加了引號,則如同navicat可視化創建一樣,我們指定了大小寫,oracle數據庫不會自動做轉換的。
所以
1.建議我們的可視化操作者還是養成手寫sql語句的習慣,我們在創建的時候就不要使用了雙引號!這樣我們就可以到達像mysql等一樣不區分大小寫了。
2.建議我們盡量養成大寫操作數據庫的習慣。