SELECT OSE.ORGANIZATION_ID_PARENT ORG_ID,
OSE.ORGANIZATION_ID_PARENT ORG_ID,
HOU.NAME
INTO :CONTROL.BU_ID,
:QUERY_FIND.BU_ID,
:QUERY_FIND.BU_NAME
FROM HR_ORGANIZATION_UNITS_V HOU
, (SELECT *
FROM PER_ORG_STRUCTURE_ELEMENTS OSE
START WITH OSE.ORGANIZATION_ID_CHILD = :CONTROL.DEPT_ID-- 587--L_ORG_ID
CONNECT BY OSE.ORGANIZATION_ID_CHILD = PRIOR OSE.ORGANIZATION_ID_PARENT) OSE
, PA_IMPLEMENTATIONS_ALL PIA
, PER_ORGANIZATION_STRUCTURES POS
, PER_ORG_STRUCTURE_VERSIONS VER
WHERE HOU.ORGANIZATION_ID = OSE.ORGANIZATION_ID_PARENT
AND OSE.ORG_STRUCTURE_VERSION_ID = PIA.ORG_STRUCTURE_VERSION_ID
AND PIA.ORG_ID = 0
AND PIA.ORGANIZATION_STRUCTURE_ID = POS.ORGANIZATION_STRUCTURE_ID
AND POS.ORGANIZATION_STRUCTURE_ID = VER.ORGANIZATION_STRUCTURE_ID
AND HOU.ORGANIZATION_TYPE = 'BU';
이러한 쿼리문을 돌렸을때
ORA-01436: CONNECT BY loop in user data
라는 에러가 발생합니다.
처리하기 위해서 찾아보니
START WITH, CONNECT BY 구문을 쓰면서 무한 루프에 빠져서 허우적대고 있다는 것이었는데,
START WITH, CONNECT BY 구문을 아직 제대로 몰라서 인터넷으로 찾아 보고 공부 하고 있으나 잘 이해가 안되네요...
CONNECT BY 뒤에 NOCYCLE을 적어주니 해결이 되긴하던데
이건 임시 방편이고 Form 파일을 컴파일 시켜주니 에러가 발생합니다.
이 쿼리문을 어떻게 고쳐야 해결할 수 있을까요?
아니면 해결해 나가야 하는 방법을 좀 알려주세요~ㅠㅠ