2013-02-07 76 views
2

我的表具有名爲select(或NOT或其他保留鍵)的列。Select語句不適用於Oracle中的雙引號

我試圖選擇'select'列,但我不能,因爲Oracle拋出異常這樣的:

無效user.table.column或TABLE.COLUMN或列規範

我的Select語句,如這樣的:

select f.select 
from foo f. 

我正在尋找互聯網,我發現接受的答案:How do I escape a reserved word in Oracle?

然後,我改變了我的查詢:Select "f"."select" from foo f,但拋出的異常過這樣的:

「C」, 「選擇」:invalit標識符。

如何在select(或update,insert)語句中使用「select」列?

P.S:我正在使用pl/sql開發者工具來查詢數據。

+7

不錯的主意,創建一列「選擇」。您也可以創建一個名爲select的表。查詢可以是「select」,「update」,「insert」,「where」from「select」where「from」>「where」和「insert」=「update」'; –

+1

如果你給這些專欄命名,你將受到懲罰。除了'f。「之外,select」'應該適合你,但是當你這樣使用時,你的列名是區分大小寫的。再一次,感受到我的憤怒在意識到你使用了一個保留的詞語,並且仍然做到了。 – Najzero

+0

@Florin Ghita:我沒有使用任何保留的密鑰,但我們的客戶可能會使用它。我們正在爲屏幕生成編寫框架,也許最終用戶創建名爲「select」的列,我們必須選擇表中的所有列。 – Baris

回答

1

這應該很好地工作:

Select f."select" from foo f 
+0

謝謝,它成功運作。 – Baris

+0

@巴黎 - 不客氣。 –

1

當標識符在Oracle中被引用,就成爲區分大小寫。

所以很可能,你必須寫:

select f."SELECT" from foo f 

(或"Select",或不過你確實寫的列名)