我在ORACLE SQL中遇到SELECT
查询问题。有一个名为'Battles'的表,列有'name'和'date'。当我尝试做的时候:
SELECT date FROM Battles
-
出现错误:(936) ORA-00936: missing expression
。我想问题是列'date'的名称与数据类型名称相似。但是我该如何处理呢?
答案 0 :(得分:2)
是的,你猜对了。 date
是Oracle中的reserve word
(实际上它是一种数据类型),您应该使用双引号""
来转义它,如下所示。
SELECT "date" FROM Battles
这就是你永远不应该选择列/表名作为保留字的原因。尽管几乎所有的RDBMS都提供了一种绕过它的方法/机制,但它从来都不是一种好的做法。
答案 1 :(得分:1)
为了引用标识符,Oracle使用双引号。请注意,这也使它们区分大小写(您说该列以小写形式命名为date
,所以):
select "date" from Battles;
请参阅Oracle Doc。
中的带引号的标识符