17

我有一张叫做日历的表。

其中一列名为“日期”

当我想选择日期列时,它会给出错误 ORA-01747,即无效的 table.column。

select date from calendars

我猜这是因为“日期”是 pl/sql 的保留字。问题是甚至无法更改列名:

alter table calendars rename column date to date_d

结果是:ORA-00904 错误:标识符无效。

你有什么建议?

谢谢。

4

3 回答 3

23

你有没有尝试过

select calendars.date from calendars; /* or you could alias "calendars" if you don't want to type so much */

如果这不起作用或没有帮助,您是否尝试过删除该列(并可能尝试使用表名前缀引用它:)calendars.date


我还发现了这篇文章:如何在 Oracle 中转义保留字?

如果您使用双引号,Oracle 似乎会区分大小写

select "date" from calendars;

不一样

select "Date" from calendars;
于 2011-10-20T21:07:25.650 回答
10

尝试用双引号转义保留字。

select "date" from calendars
于 2011-10-20T21:09:07.447 回答
1

date 是保留关键字,因此不能像这样使用

从某个表中选择日期

问题可以有多种解决方案

  • 日期列需要括在括号内,如

从表名中选择 [日期]

  • 将保留关键字括在反引号中

从表名中选择“日期”

  • 使用别名

从表名中选择表名.日期

于 2012-06-30T12:04:35.857 回答