![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема исспользования строковых ф-ций в SQL-запросе [IB5.x]
LizaX © (2004-07-12 11:44:00)Уважаемые мастера, помогите, пожалуйста, решить следующую проблему.
InterBase5.5. Имеется поле таблицы, тип данных - VARCHAR(150).
Нужно из строки выделить 8 последних знаков, и убрать последний.
Пример строки:
№дог.0096_Кооператив "Темп"_кафе_75365194_1605334_Применяю такой запрос:
SELECT networkitemid, substr(networkitemname, strlen(networkitemname)-7, strlen(networkitemname)-1)
from networkitem where networkitemname like '№%'
При выполнении в IB EXPERT выпадает сообщение:
Unsuccessful execution caused by system error that does not preclude successful execution of subsequent statements.
A fatal exception occurred during the execution of a user defined function.
arithmetic exception, numeric overflow, or string truncation.
и на выходе получаю 14 строк вместо 1958.
Reindeer Moss Eater (2004-07-12 12:08:00) [21]и на выходе получаю 14 строк вместо 1958.
А что у нас в строке 15?
LizaX (2004-07-12 12:07:00) [22]
> какой ужас...нельзя было это нормальными сушностями представить?
Если бы было по другому представлено, то я бы советов не просила.
Курдль (2004-07-12 12:07:00) [23]Мне кажется, что в последнее время каждый автор вопросов норовит что-то скрыть... :(
LizaX © (12.07.04 11:44), не могли бы Вы пояснить, что за бизнес-процесс такой? Зачем столь замысловатая обработка строки?
LizaX (2004-07-12 12:05:00) [24]Таких строк нет. Я проверяла.
Соловьев (2004-07-12 12:04:00) [25]
> №дог.0096_Кооператив "Темп"_кафе_75365194_1605334
какой ужас...нельзя было это нормальными сушностями представить?
Reindeer Moss Eater (2004-07-12 11:57:00) [26]Я не могу понять суть проблемы
А попробуй.
представвь что есть поля где networkitemname is null
или поля where strlen(networkitemname) <= 7
LizaX (2004-07-12 11:55:00) [27]Получается, что так. Но исключать всех инвалидов из поиска не реально. Я не могу понять суть проблемы. Как ее победить? Возножно, причина в данных?
Reindeer Moss Eater (2004-07-12 11:47:00) [28]и на выходе получаю 14 строк вместо 1958.
То есть пока не встретил первую же запись, для которой аргументы для subst инфалидные.