El proyecto que estoy trabajando tiene una gran cantidad de in-consultas como:pasar un array como valor en un DbParameter ado.net
SELECT something, anotherthing
FROM atable
WHERE something IN (value1, value2, value3)
Este es un ejemplo de una consulta con 3 parámetros de la EN -parte pero la misma consulta podría ejecutarse con 1 o 2 o 5 o 10 o ... parámetros. El problema es que cada consulta tiene otro plan de ejecución en la base de datos que lo hace lento.
me gustaría hava una consulta como esta:
SELECT something, anotherthing
FROM atable
WHERE something IN (@value1, @value2, @value3)
o esto:
SELECT something, anotherthing
FROM atable
WHERE something IN (@values)
que he logrado la primera consulta con un poco de función auxiliar, pero todavía tengo diferentes plan de ejecución por número de parámetros. Esto podría resolverse con el segundo.
¿Cuál es la mejor forma de pasar una matriz como parámetro de base de datos? Estoy usando Oracle y SQL Server, las soluciones para ambos son bienvenidas.
Desafortunadamente, tengo que soportar SQL Server 2000 y 2005, no hay tabla-valor-parámetro para mí. – Jochen