ORDER
- зарезервированное слово в Oracle (часть предложения ORDER BY), поэтому его не следует использовать в качестве имени для таблицы.
Технически, вы можете экранировать зарезервированное слово с двойными кавычками:
create index setIndexOnStatus on "ORDER"(idXF(STATUS));
Возможно, эта таблица была создана именно таким образом.
Этот подход чрезвычайно проблематичен, потому что вам нужно экранировать каждый запрос к этой таблице, и это не всегда возможно, особенно с автоматически сгенерированными запросами.
Так что не идите этим путемпереименуйте таблицу.
PS Я не смог воспроизвести ORA-00904
в этом запросе.Неверное имя таблицы приводит к ORA-00903: invalid table name
.Экранированный запрос прекрасно работает для меня.Если у вас все еще есть ошибка ORA-00904
, вам нужно будет собрать воспроизводимый пример , чтобы продемонстрировать вашу проблему (то есть включить оператор CREATE TABLE
и указать версию Oracle).