2012-03-09 54 views
1

我的sql ant taks與我的build.xml有問題。 我在ant中使用任務,並創建列名爲「rem」的表失敗。我猜這是Oracle中的一個保留字。不過,我對這個問題有兩個問題:Sql ant任務與sqlplus:預留字「rem」

  1. 這個問題在sqlplus中不會發生。即:它讓我創建一個列名爲「rem」的表格。

  2. 我是否應該關注非Oracle的保留字。例如:「去」在MySQL?

Thnak you。

+2

SQL的大部分含義使您可以將字段名稱換成引號或回刻度。那麼你幾乎可以擁有任何你喜歡的字段名稱。但總的來說,你應該儘可能避免*所有可能的*保留字/關鍵字。除了避免*人*可能造成的混淆外,沒有其他原因,不要介意* SQL引擎*。 – MatBailie 2012-03-09 13:54:13

+1

當在Oracle中引用列名等時,請小心...... Oracle將允許您在引號中進行包裝時創建混合大小寫的名稱(不能在引號中使用這種引號進行換行),並且從此引用這些名稱時必須使用引號。例如,創建表「xyzzy」 - SELECT * FROM「xyzzy」 – 2012-03-09 13:58:44

回答

1

我不認爲你需要擔心MySQL的保留字,除非你是在同時使用RDBMS打算。

然而,爲了首先解決你的第二個問題:

雖然cagcowboy's answer告訴你如何解決這個問題,我只能請你不這樣做

我的東西必須用雙引號括起來,然後你必須記住要做到這一點。有些用戶界面(e.g. Toad)需要特殊選項才能初始化。

實際上這是一個巨大的麻煩,因爲DemsDavd Faber已評論可以大規模混淆。

順便提一下go在Oracle中看起來確實是一個保留的工作,但不知道它做了什麼。

爲了解決您的第一點rem實際上不是Oracle中的保留字 - onlySQL*Plus - 與rem創建表的列名的作品,因爲這一點。你的具體問題必須與螞蟻有關。

0

嘗試把列在雙引號...

「REM」