본문 바로가기
개발/데이터베이스

오라클 DB ) 프로시저로 배열 넘기기 ( IN, FROM 절에 배열 형식으로 사용 - 콤마, 기준으로 구분 )

by kakk789 2023. 1. 13.
SELECT TRIM(REGEXP_SUBSTR('ddd,fff,hhh,jjj', '[^,]+', 1, LEVEL))
  FROM DUAL CONNECT BY INSTR('ddd,fff,hhh,jjj', ',', 1, LEVEL - 1) > 0;

결과 값

프로시저  예시

procedure proc_arrTest

(     
    , p_arr        in varchar2 -- (배열, ex - 0101,0102,0103,)
)

is

begin

    update 테이블명
    set
        컬럼2 = 'Y'
    where
        1 = 1
        and 컬럼1 in (
            select
                컬럼1
            from
                (
                    select
                        trim(regexp_substr(p_arr,'[^,]+',1,level) ) as 컬럼1
                    from
                        dual
                    connect by
                        instr(p_arr,',',1,level - 1) > 0
                ) a
            where
                컬럼1 is not null
        );

end proc_arrTest;​
반응형

댓글