我有一张名为日历的表。
其中一个列名为“date”
当我想选择日期列时,它会给出错误ORA-01747,即无效的table.column。
select date from calendars
我想这是因为'date'是pl / sql的保留字。问题是甚至无法更改列名称:
alter table calendars rename column date to date_d
结果是:ORA-00904错误:标识符无效。
你有什么建议?
感谢。
答案 0 :(得分:17)
你试过吗
select calendars.date from calendars; /* or you could alias "calendars" if you don't want to type so much */
如果这不起作用或帮助,您是否尝试删除该列(并且可能尝试使用表名前缀:calendars.date
引用它)?
我还发现了这篇文章:How do I escape a reserved word in Oracle?
如果你使用双引号,那么Oracle似乎是区分大小写的
select "date" from calendars;
与
不同select "Date" from calendars;
答案 1 :(得分:9)
尝试使用双引号转义保留字。
select "date" from calendars
答案 2 :(得分:1)
date是保留关键字,因此不能像
一样使用从某些表中选择日期
可以有多种问题的解决方案
SELECT [date] FROM tableName
从tableName中选择'date'
从tableName
中选择tableName.date