문제
다음 계층형 질의 결과에서 SYS_CONNECT_BY_PATH(name, '/') 값이 '/A/B/D'인 행의 LEVEL은?
[TREE] name parent / A NULL / B A / C A / D B / E C / F D
START WITH parent IS NULL CONNECT BY PRIOR name = parent;
① 2 ② 3 ③ 4 ④ 5
정답
3번
해설
SYS_CONNECT_BY_PATH(name, '/')가 '/A/B/D'라는 것은 A→B→D 순서로 탐색된 경로를 의미합니다. 경로에서 '/'로 구분된 요소의 개수를 세면: '/A/B/D'는 루트 '/' + A + B + D로 총 4개 레벨입니다. 따라서 D의 LEVEL은 4입니다. ① 2는 B의 LEVEL, ② 3은 일반적인 트리 구조에서 D의 depth이지만 SYS_CONNECT_BY_PATH에서는 루트 '/'를 포함하여 계산하므로 4가 정답입니다. ④ 5는 해당 경로에서 존재하지 않는 LEVEL입니다.