IN (param1) 형태는 구문 오류는 안나겠지만 의미상으로는 틀린 조건입니다.
1. IN (param1 을 split 하여 리스트로 출력하는 Select 구문) 형태로 푸는 방안
2. IN 조건이 아닌 문자열 비교 방식으로 푸는 방안
-- 1. 구분자로 분리 SELECT * FROM test WHERE code IN (SELECT REGEXP_SUBSTR(param1, '[^|]+', 1, LEVEL) FROM dual CONNECT BY LEVEL <= REGEXP_COUNT(param1, '[^|]+') ) ; -- 2. 문자열 비교 SELECT * FROM test WHERE INSTR(param1||'|', '|'||code||'|') > 0 ;