Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Declaração de vários valores em Variáveis ​​Oracle BIND


As variáveis ​​de vinculação do Oracle são um relacionamento um para um, portanto, você precisaria de um definido para cada valor que pretende incluir no IN cláusula:
SELECT JOB
  FROM EMP 
 WHERE JOB IN (:JOB1, :JOB2, :JOB3, ..., :JOB3000)

Você também precisa estar ciente de que o Oracle IN suporta apenas um máximo de 1.000 valores, ou você obterá:

A melhor alternativa é criar uma tabela (derivada, temporária, real ou visualização) e juntá-la para obter os valores desejados. IE:
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