2013-05-04 3 views
0

Я новичок в Oracle. У меня нет записи в базе данных, и я пытаюсь получить * max (col_name) *, но он возвращает недопустимое значение идентификатора. Как с этим бороться?Получение недопустимой ошибки идентификатора при получении Максимальный ID

+0

пожалуйста выкладываю код/​​запрос, который вы пробовали! –

+0

Недопустимый идентификатор означает, что вы можете указывать неправильное имя таблицы или имя столбца. –

+0

Немного хромой, но в отличие от MySQL Oracle запрашивает функцию и выражение как STRING в двойном qoutation: * выберите «MAX» («sb_id») из TABLE * – Volatil3

ответ

1

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 ... 

т.д.