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.
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;
Try escaping the reserved word with double quotes.
select "date" from calendars
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
SELECT tableName.date from tableName