Грабельки в строках и чиселках…
Наступил сегодня на забавные грабельки:
ID заявки в одну из моих систем решили подать вручную, ну и для простоты поиска кода вместо числовой абракадабры вида 08092008058 вбил я "hand_made".
Холодный ум утверждал, что во всех кодах все проходит если с явно не числом "08092008058" то и буквы оно скушает. Опыт подсказывал что так делать не стоит….
Скушало.
Правда после 3 часов переваривания отрыгнуло:
поехали системные ошибки на боевом серваке.
Ладно пошел по строчкам кода, шаг вправо, влево… Все ок. вроде…
Сузил после ритуальных плясок с бубном область поиска до 50 строк, в которых тупо селектятся данные из одной таблицы в другую с проверкой на статус.
долго втыкал. пробовал. Валится на этих строках.
Когда понял в чем хохма – долго смеялся: со старой реализации там остались конструкции вида
ltrim(STR(@POSITION_INDEX))
что и генерировало ошибку, т.к. долбанутый трудоголик функция STR приводила текст к тексту так:
брала текст из @POSITION_INDEX и конвертила на ходу в Float.
Дальше Она делала обратные преобразования – из float в строку.
Сцуко!