Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Зацикливание при иерархическом запросе [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]

стартовать надо с единственного ключа, а не с множества


Наверх

Титульная страница Поиск, карта сайта Написать письмо