Las variables de vinculación de Oracle son una relación de uno a uno, por lo que necesitaría una definida para cada valor que pretenda incluir en el IN
cláusula:
SELECT JOB
FROM EMP
WHERE JOB IN (:JOB1, :JOB2, :JOB3, ..., :JOB3000)
También debe tener en cuenta que Oracle IN
solo admite un máximo de 1000 valores, o obtendrá:
La mejor alternativa es crear una tabla (derivada, temporal, real o vista) y unirla para obtener los valores que desea. ES:
SELECT a.job
FROM EMP a
JOIN (SELECT :JOB1 AS col FROM DUAL
UNION ALL
SELECT :JOB2 FROM DUAL
UNION ALL
SELECT :JOB3 FROM DUAL
UNION ALL
...
UNION ALL
SELECT :JOB3000 FROM DUAL) b ON b.col = a.job