sql >> Base de Datos >  >> RDS >> Oracle

Declaración de múltiples valores en Oracle BIND Variables

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