Korzystając z pierwszego zapytania rekurencyjnego, otrzymasz 5 rekordów, gdy spróbujesz połączyć krzyżowo na wyniku rekurencyjnym, za każdym razem, gdy iteruje dane, dla każdej iteracji zgodnie z wartością 5, wartości są zapętlone względem siebie, co daje ORA-32044: cycle detected while executing recursive WITH query
błąd. Zamiast tego musisz przekreślić sprzężenie po stronie rekurencyjnego wyniku, jak poniżej,
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;