VAR RC REFCURSOR;
declare
V_A VARCHAR2(10) := 'AAA';
V_B VARCHAR2(10000);
BEGIN
V_B := 'WITH T ( AA , BB , CC ) AS (
SELECT ''1'' ,''AAA'' ,''100'' FROM DUAL UNION ALL
SELECT ''2'' ,''BBB'' ,''200'' FROM DUAL UNION ALL
SELECT ''3'' ,''CCC'' ,''300'' FROM DUAL UNION ALL
SELECT ''4'' ,''DDD'' ,''400'' FROM DUAL UNION ALL
SELECT ''5'' ,''EEE'' ,''500'' FROM DUAL UNION ALL
SELECT ''6'' ,''FFF'' ,''600'' FROM DUAL UNION ALL
SELECT ''7'' ,''GGG'' ,''700'' FROM DUAL UNION ALL
SELECT ''8'' ,''HHH'' ,''800'' FROM DUAL
)
SELECT AA, BB, CC FROM T
WHERE BB IN (''' || V_A || ''')
';
OPEN :RC FOR V_B;
END;
에서 V_A안에 한가지 값만 넣으면 아무 문제 없이 돌아가는데, 여러개의 값을 넣으면 오류가 나네요.
다중의 결과를 원할 경우, 다른 방법을 써야하는건가요?
조건에 'AAA'와 'CCC'와 'EEE'를 가진 값을 출력하고 싶은데...