Използвайки първата рекурсивна заявка, ще получите 5 записа, когато се опитате да кръстосате съединяване на рекурсивния резултат, всеки път, когато итерира данните, за всяка итерация според стойността 5, стойностите се завъртат една срещу друга, което води до, ORA-32044: cycle detected while executing recursive WITH query
грешка. Вместо това трябва да пресечете съединяването отстрани на рекурсивния резултат, както е показано по-долу,
with r (x) as (
select 1 as x from dual
union all
select x + 1 from r,dual where x < 5
)
select * from r
cross join r;