“date” as a column name

2019-04-19 14:41发布

I have a table called calendars.

One of its columns is named 'date'

When I want to select the date column it gives error ORA-01747 namely invalid table.column.

select date from calendars

I guess this happens because 'date' is a reserved word for pl/sql. The problem is it's not even possible to change the column name :

alter table calendars rename column date to date_d

Result is: ORA-00904 error: invalid identifier.

What do you advice?

Thanks.

3条回答
Animai°情兽
2楼-- · 2019-04-19 14:59

Try escaping the reserved word with double quotes.

select "date" from calendars
查看更多
Root(大扎)
3楼-- · 2019-04-19 15:17

Have you tried

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

If that doesn't work or help, have you tried dropping the column (and maybe try referencing it with the table name prefix: calendars.date)?


I also found this post: How do I escape a reserved word in Oracle?

It seems that Oracle will be case-sensitive if you use double quotes so

select "date" from calendars;

is not the same as

select "Date" from calendars;
查看更多
疯言疯语
4楼-- · 2019-04-19 15:20

date is a reserved keyword and hence cannot be used like

SELECT date from some table

there can be multiple solutions for the problem

  • The date column needs to be enclosed within the brackets like

SELECT [date] FROM tableName

  • Enclose the reserved keyword in backticks

SELECT 'date' from tableName

  • Use alias

SELECT tableName.date from tableName

查看更多
登录 后发表回答