DESC BOM
Name Null Type
---- -------- ------------
P NOT NULL VARCHAR2(20)
C NOT NULL VARCHAR2(20)
--NO CYCLE DATA
SELECT * FROM BOM
ORDER BY P;
A B
B C
C D
--NO CYCLE DATA + SELECT
SELECT LEVEL,P,C, SYS_CONNECT_BY_PATH(P,'\')
FROM BOM
START WITH P ='A' CONNECT BY PRIOR C = P;
1 A B \A
2 B C \A\B
3 C D \A\B\C
--LOOP DATA
SELECT * FROM BOM
ORDER BY P;
A B
B C
C D
D A
--CYCLE DATA + SELECT = ORA-01436: CONNECT BY loop in user data
SELECT LEVEL,P,C, SYS_CONNECT_BY_PATH(P,'\')
FROM BOM
START WITH P ='A' CONNECT BY PRIOR C = P;
ORA-01436: CONNECT BY loop in user data
01436. 00000 - "CONNECT BY loop in user data"
*Cause:
*Action:
--CYCLE DATA + SELECT(NOCYCLE)
SELECT LEVEL,P,C, SYS_CONNECT_BY_PATH(P,'\')
FROM BOM
START WITH P ='A' CONNECT BY NOCYCLE PRIOR C = P;
1 A B \A
2 B C \A\B
3 C D \A\B\C
4 D A \A\B\C\D
--CYCLE DATA + SELECT(CONNECT_BY_ISCYCLE,NOCYCLE) = GET CYCLE RECORD(MAYBE)
SELECT LEVEL,CONNECT_BY_ISCYCLE,P,C, SYS_CONNECT_BY_PATH(P,'\')
FROM BOM
START WITH P ='A' CONNECT BY NOCYCLE PRIOR C = P;
1 0 A B \A
2 0 B C \A\B
3 0 C D \A\B\C
4 1 D A \A\B\C\D <-- CYCLE RECORD(MAYBE)
訂閱:
張貼留言 (Atom)





沒有留言:
張貼留言