Ошибка при выборке ORA-00972: слишком длинный идентификатор

mvolosevitch

Использую Oracel9i + asp(OleDB) автоматически генерирую SQL код :
str = ' select id,title,NVL(date_created,(select date_created from home where id=' & id & ')) as date_created,' & _
			' description,parentid,languageid ' & _
			' from home where languageid=' & lid & ' and (id=' & id & ' or parentid=' & id & ')'
в результате получется:
select id,title,NVL(date_created,(select date_created from home where id=1)) as date_created,
description,parentid,languageid 
from home where languageid=2 and (id=1 or parentid=1)
если запустить этот запрос в Sql+,то проходит без ошибок если запускаю в среде asp,то вываливается с ошибкой OraOLEDB (0x80040E14) ORA-00972: слишком длинный идентификатор
7 ответов

mvolosevitch

Здравствуйте, форумчане! у меня схожая проблема: надо апдейтить строку где ключом является некий хэш-код т.е.
UPDATE users SET flag=1 WHERE hash = "qwertyuiopasdfghjklzxcvbnm12345";
тут у меня получается 31 символов. как решит эту проблему? или есть ли другие варианты/идеи?


mvolosevitch

тут у меня получается 31 символов
Строковые литералы заключаются в одинарные кавычки. Двойные кавычки - для "нестандартных" имен объектов (таблиц и колонок).


mvolosevitch

Grossmeister, спасибо, решил проблему! проблема была в JAVA бинах...


mvolosevitch

ORA-00972 identifier is too longCause: An identifier with more than 30 characters was specified.Action: Specify at most 30 characters. Как запускаете из-под asp? Можно ли вывести запрос, который получился перед запуском?


mvolosevitch

Как запускаете из-под asp? Можно ли вывести запрос, который получился перед запуском?
прошу прошения но что имеете ввиду под вывести запрос?


mvolosevitch

В отладочный файл, например. Просто текст, который передается на исполнение.Или если есть отладочная среда, то поставить точку останова и посмотреть в отладчике.


mvolosevitch

эту ошибку получал в простом апдейте, когда проверял сам запрос... а так дело было в java бине не совсем правильно написал этот бин как только там исправил все исчезло...среда JDeveloper 12c