ORA-01436: CONNECT BY loop in user data
01436. 00000 - "CONNECT BY loop in user data"
*Cause:
*Action:
原因:
分层查询中存在上下层互为父子节点
处理方法:
在connect by后面加上NOCYCLE关键字,用connect_by_iscycle伪列定位出存在互为父子循环的具体节点,修改出错的数据。
connect_by_iscycle必须要跟关键字NOCYCLE结合起来使用
Oracle “CONNECT BY”是层次查询子句,一般用于树状或者层次结果集的查询。其语法是:
1 2 |
[ START WITH condition ] CONNECT BY [ NOCYCLE ] condition |
The start with .. connect by clause can be used to select data that has a hierarchical relationship (usually some sort of parent->child (thing->parts).
说明:
START WITH:告诉系统以哪个节点作为根结点开始查找并构造结果集,该节点即为返回记录中的最高节点。