프로시져 파라메타 in 절 변환 0 1 461

by 고라니 [SQL Developer] [2022.01.18 20:43:18]


안녕하세요.

프로시져 파라메타 관련 문의드립니다.

프로시져를 콜할때 총 3개의 파라메타를 던져주고 있습니다.

ex) call proc(1,2,'a,b')

여기서 문의드릴 내용은 마지막 파라메타 관련해서입니다.

파라메타를 던져줄때 문자열 형식으로 데이터를 받는데 해당 파라메타는 in 조건에 들어갑니다.

현재 파라메타는 in ('a,b')의 형식으로 들어가는데 이를 ('a','b') 형식으로 받고 싶습니다.

파라메타에 받기때문에 프로시져 내에서 해당 문자열을 변환하고 싶습니다..

많은 도움 부탁드립니다. 감사합니다.

by 마농 [2022.01.19 08:13:47]
PROCEDURE p_test
( p1 NUMBER
, p2 NUMBER
, p3 VARCHAR2
)
IS
    CURSOR cur_1 IS
    SELECT *
      FROM test
     WHERE c1 = p1
       AND c2 = p2
       AND c3 IN (SELECT REGEXP_SUBSTR(p3, '[^,]+', 1, LEVEL)
                    FROM dual
                   CONNECT BY LEVEL <= REGEXP_COUNT(p3, '[^,]+')
                  )
    ;
BEGIN
    --
END;
/

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입