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

¿Cómo pasar una variable en la cláusula WHERE IN de Oracle sql?

Como aludió Pavanred, la forma más fácil, aunque no necesariamente la mejor, es interpolar los valores usted mismo. No dices cuál es tu idioma de llamada, sino algo como:

sql = "SELECT something FROM whatever WHERE myColumn in (" + $1 + ")"

Sin embargo, esto significa que es muy importante que haya verificado previamente todos los valores en $1 para asegurarse de que sean números, o cadenas con escape adecuado, o cualquier otra cosa que necesite pasar, pero no puede ser valores sin procesar proporcionados por un usuario, para evitar una inyección SQL.

La otra opción es convertirlo en un proceso de dos pasos. Primero, inserte los valores de $1 en una tabla temporal, luego seleccione esos valores como una subconsulta:

WHERE myColumn in (SELECT temp_value FROM temp_table)