ORA-01436: CONNECT BY loop in user data

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
:告诉系统以哪个节点作为根结点开始查找并构造结果集,该节点即为返回记录中的最高节点。 

猜你喜欢

转载自sunwonder.iteye.com/blog/2181387