我理解Oracle中何时可能发生循环.理论上它说如果一条记录既是另一个节点的父节点又同时是它的子节点,那么它就可以进入一个循环.
但是我无法理解为什么我的这个特定查询会进入循环.
SELECT Empno, Ename, Job
FROM Emp
START WITH Empno = 7839
CONNECT BY PRIOR
Job='PRESIDENT'
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下这个数据如何导致循环.我做了一个CONNECT_BY_ISCYCLE检查,发现记录循环是KING(总统).但我仍然不明白怎么可能,因为KING是总统,而且我认为它没有任何方式成为表中任何记录的子女和父母.
请解释一下,为什么这是一个错误,循环在哪里?
提前致谢.
仅供参考,该表是Oracle中SCOTT用户的默认EMP表.