2012-03-09 33 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”