Saltar al contenido

Cómo pasar múltiples valores a un solo parámetro en el procedimiento almacenado

Nuestros investigadores estrellas han agotado sus depósitos de café, investigando todo el tiempo por la resolución, hasta que Ximena halló la contestación en GitLab así que hoy la compartimos aquí.

Solución:

Esto no se puede hacer fácilmente. No hay manera de hacer un NVARCHAR el parámetro toma “más de un valor”. Lo que he hecho antes es, como ya lo hace, hacer que el valor del parámetro sea como una lista con valores separados por comas. Luego, divide esto string en sus partes en el procedimiento almacenado.

La división se puede hacer usando string funciones Agregue cada parte a una tabla temporal. El pseudocódigo para esto podría ser:

CREATE TABLE #TempTable (ID INT)
WHILE LEN(@PortfolioID) > 0
BEGIN
    IF NOT <@PortfolioID contains Comma>
    BEGIN
        INSERT INTO #TempTable VALUES CAST(@PortfolioID as INT)
        SET @PortfolioID = ''
    END ELSE
    BEGIN
         INSERT INTO #Temptable VALUES CAST( AS INT)
         SET @PortfolioID = 
    END
END

Luego, cambia tu condición a

WHERE PortfolioId IN (SELECT ID FROM #TempTable)

EDITAR

Es posible que le interese la documentación para parámetros de valores múltiples en SSRS, que establece:

Puede definir un parámetro de varios valores para cualquier parámetro de informe que cree. Sin embargo, si desea devolver varios valores de parámetros a un origen de datos mediante la consulta, se deben cumplir los siguientes requisitos:

El origen de datos debe ser SQL Server, Oracle, Analysis Services, SAP BI NetWeaver o Hyperion Essbase.

El origen de datos no puede ser un procedimiento almacenado. Reporting Services no admite el paso de un parámetro multivalor array a un procedimiento almacenado.

La consulta debe utilizar una cláusula IN para especificar el parámetro.

Esto lo encontré aquí.

Utilice una tabla definida por el usuario

O puede usar CSV definiendo su propia función CSV según esta publicación.

Probablemente recomendaría el segundo método, ya que su proceso almacenado ya está escrito en el formato correcto y lo encontrará útil más adelante si necesita hacer esto en el futuro.

¡Salud!

UTILIZAR ESTE

He tenido este problema exacto durante casi 2 semanas, extremadamente frustrante, pero FINALMENTE encontré este sitio y fue un recorrido claro de qué hacer.

http://blog.summitcloud.com/2010/01/multivalue-parameters-with-stored-procedures-in-ssrs-sql/

Espero que esto ayude a la gente porque era exactamente lo que estaba buscando.

Recuerda que puedes recomendar esta reseña si si solucionó tu problema.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *