2014-11-21 39 views
0

我是一個非常新的Oracle SQL用戶,我遇到了問題。Oracle中TABLE_NAME與「TABLE_NAME」的區別?

如果我創建一個表的代碼,如

create table TBL_NAME... 

之後,我可以得到的數據

SELECT * FROM TBL_NAME;

然而,當我創建表的Navicat(只要按一下按鈕,新表),那麼我要補充「」表名稱來訪問我的表,如:

select * from "TBL_NAME"; 

所以,還有其他類型的表嗎?如果我使用Navicat創建表格,它是什麼類型的?

回答

1

當您在Oracle中指定一個沒有雙引號的表名時,Oracle會將該表名轉換爲大寫。但是,如果您在雙引號內指定表的名稱,那麼Oracle將尊重您可能擁有的小寫字母。

因此,正如你的例子中你的表名已經全是大寫,那麼在指定或不用雙引號時就沒有區別。

但是,例如,如果你創建一個表是這樣的:

CREATE TABLE "my_table" .... 

那麼你可以不喜歡這個訪問:

SELECT * FROM my_table; 

甲骨文將轉變是選擇這樣的:

SELECT * FROM MY_TABLE; 

而你的系統中沒有這樣的表。

對於Navicat來說,它只需要你按原樣指定表的名稱,但不用擔心,只需放置雙引號並粘貼所有大寫名稱即可。

+0

謝謝@DWilches,你的回答解決了我的問題。這讓我整日感到困惑 – 2014-11-21 10:19:36

相關問題