본문 바로가기
오라클 게시판/오라클 함수

[오라클 SQL 함수] SYS_CONNECT_BY_PATH 함수

by 기서무나구물 2021. 10. 21.

포스팅 목차

     

    SYS_CONNECT_BY_PATH

     


    문법

     

    sys_connect_by_path::=

     


    목적

    SYS_CONNECT_BY_PATH 함수는 계층 구조로 형성된 데이터를 조회하는 계층적 쿼리에서만 사용할 수 있는 함수이다. 이 함수는 CONNECT BY 조건에 의해 반환된 각 행을 기준으로 개별 행에 속한 열 값을 구분자(char)로 구분하여 루트(Root) 노드에서 해당 노드(node)까지의 경로를 문자열로 생성하여 반환한다.

    예를 들어, 직원들의 직급 관계를 나타내는 계층 구조에서 SYS_CONNECT_BY_PATH 함수를 사용하면, 각 직원의 직급 경로(CEO > 부사장 > 팀장 > 사원 등)를 문자열로 생성할 수 있습니다.

    열(column) 값은 CONNECT BY 조건에 의해 반환되는 각 행을 지정한 구분자(char) 로 분리하여 반환한다.

    열(column)과 구분문자(char)는 모두 CHAR, VARCHAR2, NCHAR 또는 NVARCHAR2 데이터 타입 중 하나를 사용할 수 있다. 반환되는 문자열은 VARCHAR2 데이터 타입이고, 열(column)과 동일한 문자 집합에 속한다.

     

     


    예제

    다음 예제는 직원 Kochhar 부터 Kochhar 이 관리하고 있는 직원(세부 조직에 속한 직원을 포함하여)들의 이름을 계층 구조로 구성된 경로(Path)를 반환한다.

    Oracle Programming
    SELECT LPAD(' ', 2*level-1)||SYS_CONNECT_BY_PATH(last_name, '/') "Path"
    FROM   employees
    START WITH last_name = 'Kochhar'
    CONNECT BY PRIOR employee_id = manager_id;

     

    Results
    Path
    ---------------------------------------------------------------
     /Kochhar
       /Kochhar/Greenberg
         /Kochhar/Greenberg/Faviet
         /Kochhar/Greenberg/Chen
         /Kochhar/Greenberg/Sciarra
         /Kochhar/Greenberg/Urman
         /Kochhar/Greenberg/Popp
       /Kochhar/Whalen
       /Kochhar/Mavris
       /Kochhar/Baer
       /Kochhar/Higgins
         /Kochhar/Higgins/Gietz

     


    오라클 SQL 함수(Oracle SQL Function) 목록 리스트 링크

     

    [SQL, Pandas, R Prog, Dplyr, SQLDF, PANDASQL, DATA.TABLE] SQL EMP 예제로 만나는 테이블 데이터 처리 방법 리스트 링크

    2023.01.24 수정

    반응형

    댓글