Replace 등의 함수로 값을 변경할 수는 있어도, 값을 두개로 쪼갤수는 없습니다.
값에 컴마를 붙이고 따옴표를 붙인다고 해서 값이 쪼개지는게 아닙니다.
단지 컴마와 따옴표를 포함하고 있는 하나의 긴 문자열 값일 뿐입니다.
-- 1. IN 검색이 아닌 문자열 검색으로 바꾸기 WHERE :v_txt LIKE '%'|| col ||'%' WHERE INSTR(:v_txt, col) > 0 -- 2. 값을 쪼개어 조건 주기 WHERE col IN (SELECT REGEXP_COUNT(v, '[^,]+', 1, LEVEL) x FROM (SELECT :v_txt v FROM dual) CONNECT BY LEVEL <= REGEXP_COUNT(v, '[^,]+') ) -- 3. 동적 쿼리 만들기 v_txt = "'0160','0161'"; v_sql = v_sql + " WHERE col IN (" + v_txt + ")";