如何选择名为' date'的列?在Oracle?

时间:2014-10-25 18:43:55

标签: sql oracle

我在ORACLE SQL中遇到SELECT查询问题。有一个名为'Battles'的表,列有'name'和'date'。当我尝试做的时候:

SELECT date FROM Battles -

出现错误:(936) ORA-00936: missing expression。我想问题是列'date'的名称与数据类型名称相似。但是我该如何处理呢?

2 个答案:

答案 0 :(得分:2)

是的,你猜对了。 date是Oracle中的reserve word (实际上它是一种数据类型),您应该使用双引号""来转义它,如下所示。

SELECT "date" FROM Battles

这就是你永远不应该选择列/表名作为保留字的原因。尽管几乎所有的RDBMS都提供了一种绕过它的方法/机制,但它从来都不是一种好的做法。

答案 1 :(得分:1)

为了引用标识符,Oracle使用双引号。请注意,这也使它们区分大小写(您说该列以小写形式命名为date,所以):

select "date" from Battles;

请参阅Oracle Doc

中的带引号的标识符