"date"作为列名

bon*_*svr 12 database oracle database-design ora-01747 ora-00904

我有一张名为日历的表.

其中一个列名为'date'

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

select date from calendars
Run Code Online (Sandbox Code Playgroud)

我想这是因为'date'是pl/sql的保留字.问题是甚至无法更改列名:

alter table calendars rename column date to date_d
Run Code Online (Sandbox Code Playgroud)

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

你有什么建议?

谢谢.

Fru*_*ner 17

你有没有尝试过

select calendars.date from calendars; /* or you could alias "calendars" if you don't want to type so much */
Run Code Online (Sandbox Code Playgroud)

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


我还发现了这篇文章:如何逃避Oracle中的保留字?

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

select "date" from calendars;
Run Code Online (Sandbox Code Playgroud)

是不一样的

select "Date" from calendars;
Run Code Online (Sandbox Code Playgroud)

  • 从日历中选择“日期”解决了它。这是日期,而不是日期。 (2认同)

Joe*_*lli 9

尝试使用双引号转义保留字.

select "date" from calendars
Run Code Online (Sandbox Code Playgroud)