En utilisant la première requête récursive, vous obtiendrez 5 enregistrements, lorsque vous essayez de faire une jointure croisée sur le résultat récursif, chaque fois qu'il itère les données, pour chaque itération selon la valeur 5, les valeurs sont bouclées les unes contre les autres, ce qui donne, ORA-32044: cycle detected while executing recursive WITH query
Erreur. Au lieu de cela, vous devez croiser le résultat récursif comme ci-dessous,
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;