none
Passer un tableau à une procédure stockée RRS feed

  • Question

  • Bonjour,

    Comment je peux passer un tableau à une procédure stockée.
    J'ai essayé de passer une chaine de caractère mais je n'et pas pu la diviser.
    Voici le code de la procédure:

    CREATE PROCEDURE [dbo].[usp_client_Filter]
    @client nvarchar(64)= N'%%',
    @clientValues nvarchar(64), 
    AS
    BEGIN
     
    SELECT  [SocieteLib], [ClientID], [ClientLib]

    FROM MyDatabase

    WHERE
    ( (([ClientLib] Like @client) or ([ClientLib] in (@clientValues)) or ([ClientLib] is null)))
    END

    Merci en avance

    mardi 4 août 2009 09:19

Réponses

  • Avec SQL Server 2005, vous ne pouvez pas passer de tableau directement à une procédure stockée.

    Vous avez diverses solutions de contournement :

    - Passer par une table temporaire. Vous mettez le résultat de votre 1ère requête dans la table temporaire que vous utilisez dans un 2ème temps dans votre procédure stockée.

    - Transformer votre tableau au format XML et passer en paramètre un champ de type XML

    - Concaténer le résultat de votre 1ère requête en une liste de valeurs séparés par une virgule par exemple en tant que chaîne de caractère que vous passez en paramètre à votre procédure.

    ++


    MCDBA | MCITP SQL Server 2005 | LPI 1
    • Marqué comme réponse boussarsar mardi 4 août 2009 19:40
    mardi 4 août 2009 19:18
    Modérateur

Toutes les réponses

  • Bonjour,

    Sur quelle version de SQL Server êtes vous ?

    ++


    MCDBA | MCITP SQL Server 2005 | LPI 1
    mardi 4 août 2009 14:06
    Modérateur
  • SQL Server 2005
    mardi 4 août 2009 17:58
  • Avec SQL Server 2005, vous ne pouvez pas passer de tableau directement à une procédure stockée.

    Vous avez diverses solutions de contournement :

    - Passer par une table temporaire. Vous mettez le résultat de votre 1ère requête dans la table temporaire que vous utilisez dans un 2ème temps dans votre procédure stockée.

    - Transformer votre tableau au format XML et passer en paramètre un champ de type XML

    - Concaténer le résultat de votre 1ère requête en une liste de valeurs séparés par une virgule par exemple en tant que chaîne de caractère que vous passez en paramètre à votre procédure.

    ++


    MCDBA | MCITP SQL Server 2005 | LPI 1
    • Marqué comme réponse boussarsar mardi 4 août 2009 19:40
    mardi 4 août 2009 19:18
    Modérateur
  • bonjour tout le monde
    Comment Transformer mon tableau au format XML
    et merci d'avance
    • Proposé comme réponse jfsmart mercredi 23 décembre 2009 13:55
    mardi 13 octobre 2009 15:16