DB/ORACLE

문자열 배열로 변경해서 가지고 오기

질주하는구 2016. 10. 24. 17:42

프로젝트 진행 중 함수안에 인자 값을 '111','222','3333' 같은 내용을 보내서 IN 함수의 인자 값으로 사용 하고자 했으나 varchar2형식으로 넘어 가기 때문에 에러가 발생 되어 검색 중 아래와 같은 쿼리문으로 문자여을 쪼개는 작업을 이용해서 해결


SELECT REGEXP_SUBSTR('111,222,333,444,555,666,777','[^,]+',1,LEVEL)

  FROM DUAL

  CONNECT BY LEVEL <= LENGTH('111,222,333,444,555,666,777') - LENGTH(REPLACE('111,222,333,444,555,666,777',',','')) + 1


'111,222,333,444,555,666' 이렇게 정보를 보내주면


111

222

333

444

555

666

이런 식으로 전달을 해줍니다. IN함숨에 select문으로 인자값을 보내주는 방식 처리

반응형