"дата" в качестве имени столбца
У меня есть таблица, называемая календарем.
Один из его столбцов называется 'date'
Когда я хочу выбрать столбец даты, он дает ошибку ORA-01747, а именно недопустимый table.column.
select date from calendars
Я предполагаю, что это происходит, потому что 'date' является зарезервированным словом для pl/sql. Проблема в том, что даже не возможно изменить имя столбца:
alter table calendars rename column date to date_d
Результат: ошибка ORA-00904: неверный идентификатор.
Что вы посоветуете?
Спасибо.
Ответы
Ответ 1
Вы пробовали
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;
Ответ 2
Попробуйте выполнить зарезервированное слово с двойными кавычками.
select "date" from calendars
Ответ 3
date является зарезервированным ключевым словом и, следовательно, не может использоваться как
SELECT date из таблицы
могут быть несколько решений для задачи
- Столбец даты должен быть заключен в скобки, например
SELECT [дата] FROM tableName
- Заблокировать зарезервированное ключевое слово в backticks
SELECT 'date' from tableName
SELECT tableName.date from tableName