The recursive subquery factoring works without CYCLE clause and without cycle only.
When I have a cycle (uncomment SELECT 5, 2 FROM dual UNON ALL) ORACLE detects the cycle correctly, but when I include CYCLE clause I get ORA-30654.
I' m pretty shure, that this statement already worked in my DB (11.2.0.3.0 - 64bit)
CREATE TABLE temp_rsq (a,b)
AS
SELECT 1, 2 FROM dual UNION ALL
SELECT 2, 3 FROM dual UNION ALL
SELECT 3, 4 FROM dual UNION ALL
SELECT 4, 5 FROM dual UNION ALL
--SELECT 5, 2 FROM dual UNION ALL
SELECT 5, 6 FROM dual UNION ALL
SELECT 6, 7 FROM dual;
--
--
-- b-> new A
WITH cte ( pb, a, b, weg) AS
(SELECT NULL, a, b, a
FROM temp_rsq
WHERE a=1
UNION ALL
SELECT cte.b, n.a a, n.b, weg+n.a
FROM temp_rsq n
JOIN cte
ON (cte.b=n.a))
SEARCH depth FIRST BY a SET abst
--CYCLE a SET is_cycle to '1' DEFAULT '0'
SELECT * FROM cte;