Я новичок в Oracle. У меня нет записи в базе данных, и я пытаюсь получить * max (col_name) *, но он возвращает недопустимое значение идентификатора. Как с этим бороться?Получение недопустимой ошибки идентификатора при получении Максимальный ID
ответ
Oracle запрашивает функцию и выражение в виде строки в двойном qoutation
Это обычно не делает, что ... конечно же, не для стандартных встроенных функций имен, как MAX
.
Вам нужно всего лишь использовать котировки doube вокруг имен объектов, которые были определены с помощью quouted identifiers.
Из вашего комментария кажется, что ваша таблица была создана что-то вроде:
create table "TABLENAME" ("sub_id" number, ...);
... который будет означать, что вы всегда должны использовать двойные кавычки вокруг имени столбца всякий раз, когда вы обратитесь к нему. Это будет по-прежнему больно и вызовет у вас проблемы, поэтому я бы порекомендовал вам никогда не использовать имена в смешанном случае или что-либо еще, что требует таких цитат.
Если используются котируемые идентификаторы (или в кавычках имя верхнего регистра в любом случае, как "SUB_ID"
), то Oracle нечувствителен к регистру, и любой из них было бы справедливо:
select max(sb_id) from ...
select max(SB_ID) from ...
select max(Sb_Id) from ...
т.д.
пожалуйста выкладываю код/запрос, который вы пробовали! –
Недопустимый идентификатор означает, что вы можете указывать неправильное имя таблицы или имя столбца. –
Немного хромой, но в отличие от MySQL Oracle запрашивает функцию и выражение как STRING в двойном qoutation: * выберите «MAX» («sb_id») из TABLE * – Volatil3