понедельник, 03 сентября 2007
программазм
Коллега подкинул задачку - самописный огромный UNION о шести некислых селектах:
- Разберись плз - тут у меня записи чего-то дублируются, а иногда не дублируются, вот я закомментировал половину поэтому, хотя вообще нужны все.
Я офигеваю, комментирую переменные, ставлю на выполнение первую часть. Работает минуты две. Ставлю на выполнение целиком.. жду.. завариваю чай.. жду..
Тут надо пояснить, что у коллеги БД другая, с индексами, запрос выполняется почти мгновенно.
Итак, жду.. жду.. отменяю.
Методом проб и ошибок выбрала юнион поменьше, допила чай, дожрала еще кусок деньрожденного торта. И наконец... вываливается результат, в котором я явственно вижу, как дублируются записи, потому что этот охламон выбирает SYSDATE для каждой строки, а SYSDATE успевает поменяться за время работы запроса. Подавляю желание стукнуть коллегу об монитор.
@темы:
Жизненное
Вчера со мной тоже советовались. Коллега сортирует строки по дате, получается какая-то фигня. Селект вроде нормальный...
При рассмотрении результата выяснилось, что даты у него в БД в текстовом поле и сортируются абсолютно правильно, но по алфавиту.
Зато формат даты всегда одинаковый
С датами какой только фигни не бывает)) Чуть раньше было - одна процедура пихает дату в текстовый столбец в формате DD.MM.YYYY, а ГУЁвина берет это поле и пытается засунуть в отведённые 8 знаков (как выяснилось позднее). Неизвестно, по какому алгоритму она это делала, но даты умудрялись не совпадать ни в одной цифре.