![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Зацикливание при иерархическом запросе [2000]
Sonia © (2007-10-17 17:21:00)Здравствуйте. Имеются данные из 3-х полей flt, sst, mff соответственно:
С7001 - 00 - null
7Б002 - 02 - null
C7003 - SF - 7Б002
И6004 - SF - 7Б002
и т.д.
пишу запрос:
SELECT hfd.flt, hfd.mff
FROM hist_flight_departures hfd
WHERE hfd.sst <> '00' AND hfd.sdt BETWEEN to_date('01.08.2007','dd.mm.yyyy') AND to_date('02.08.2007','dd.mm.yyyy')
START WITH hfd.sst <> 'SF' -- то есть для строк, где поле sst = 01 или 02 или 03 и т.д.
CONNECT BY prior hfd.flt = hfd.mff
С помощью этого запроса хочу получить информацию, вида: (flt и mff соответственно):
7Б002 - C7003
7Б002 - И6004
При этом Оракл пишет ошибку зацикливание (Connect by loop in user data). Подскажите, в чем ошибка?
Спасибо!
Sonia (2007-10-18 12:04:00) [1]
> Sergey13 © (18.10.07 11:09) [6]
Спасибо, попробую, но скорее всего проблема в написанном коде, т.к. таблица написана не мной, поэтому на 99.(9) % зацикливания в данных не должно быть...
Sergey13 (2007-10-18 11:09:00) [2]> [5] Sonia © (18.10.07 10:57)
Сначала позапускай последовательно запрос для каждого члена множества hfd.sst <> 'SF' - найдешь проблемную ветку.
После добавь в запрос level
CONNECT BY prior hfd.flt = hfd.mff and level<3
повышая уровень вложенности найдешь проблемный уровень.
Я бы так искал.
Sonia (2007-10-18 10:57:00) [3]
> В данных наверное. Кольцо нашлось.
А как проверить, есть кольцо или нет, не прибегая к ручному просмотру?
Sonia (2007-10-18 10:29:00) [4]Могу конечно намутить селект из селекта, но не хочется....Да и дольше обрабатываться наверное будет...
Sonia (2007-10-18 10:22:00) [5]
> В данных наверное. Кольцо нашлось.
Хм...не должно быть... flt у которых sst='SF' - всегда дочерние
Sergey13 (2007-10-17 17:36:00) [6]> [0] Sonia © (17.10.07 17:21)
> Подскажите, в чем ошибка?
В данных наверное. Кольцо нашлось.
> [1] Reindeer Moss Eater © (17.10.07 17:28)
Разве?
Reindeer Moss Eater (2007-10-17 17:28:00) [7]стартовать надо с единственного ключа, а не с множества