Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
ict_2010 Участник со стажем
Вступление в Клуб: 25.03.2015
|
Чт Май 07, 2015 08:21  Рекурсия |
|
Полезность: Нет оценки
|
Подскажите как реализовать в цфт рекурсию в запросе? |
|
 |
prog Эксперт
Вступление в Клуб: 03.03.2008
|
Чт Май 07, 2015 08:31   |
|
Полезность: Нет оценки
|
покажите пример, как вы реализуете рекурсию в sql запросе без цфт? |
|
 |
ict_2010 Участник со стажем
Вступление в Клуб: 25.03.2015
|
Чт Май 07, 2015 08:43   |
|
Полезность: Нет оценки
|
prog пишет: | покажите пример, как вы реализуете рекурсию в sql запросе без цфт? |
Фрагмент кода которую хочу рекурсивно реализовать в цфт
procedure proc1 is
begin
for(
select r
(r : r_id,
r.[rr]:rr)
in [table] where r = r%id)
loop
for(
select r
(r2 : r2_id,
r2.[rr]:rr2)
in [table] where r.r_id = r2.rr2)
loop
for(
select r
(r3 : r3_id,
r3.[rr]:rr3)
in [table] where r2.r_id = r3.rr3)
loop
----------
end loop;
end loop;
end loop;
end;
вместо того чтоб запрос повторять как можно реализовать отдельную процедуру чтоб её рекурсивно вызывать в процедуре proc1? |
|
 |
Random Эксперт
Вступление в Клуб: 27.06.2011
|
Чт Май 07, 2015 10:16   |
|
Полезность: 1
|
ict_2010 пишет: | prog пишет: | ict_2010 пишет: | Подскажите как реализовать в цфт рекурсию в запросе? | покажите пример, как вы реализуете рекурсию в sql запросе без цфт? |
Фрагмент кода которую хочу рекурсивно реализовать в цфт ... |
Это был сарказм.
В SQL-запросе нельзя организовать рекурсию. Можно организовать иерархический запрос, но рекурсию - невозможно.
Нужно понимать разницу между SQL-запросом и кодом на PL/SQL.
SQL-запрос начинается с ключевых слов select, update, insert, delete или merge.
А то, что вы привели в качестве примера - это как раз PL/SQL-код.
Ну и бонусом ответ на ваш вопрос:
В точности так же, как и во всех остальных языках:
Код: |
procedure test(p_level integer := 1) is
begin
debug_pipe('Выполняется рекурсия, уровень вложенности: '||p_level,0);
if p_level < 10 then
test(p_level+1);
end if;
end;
|
Ваш Капитан Очевидность.
Что касается иерархического запроса, вот пример:http://cftclub.ru/viewtopic.php?t=3998&highlight= |
|
 |
ict_2010 Участник со стажем
Вступление в Клуб: 25.03.2015
|
Чт Май 07, 2015 13:43   |
|
Полезность: Нет оценки
|
тема закрыта, проблема решена |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|