IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

[SQL2K] OpenXML : requête XPath dans une variable


Sujet :

MS SQL Server

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7
    Points : 5
    Points
    5
    Par défaut [SQL2K] OpenXML : requête XPath dans une variable
    Bonjour,
    Je souhaiterais réaliser dans une fonction un OpenXML dans lequel, les requêtes XPath correspondant aux différents champs de la table résultat sont construites à partir d'une variable.
    Le principe est de construire la commande OpenXML sous la forme d'une chaine de caractère (sCmd) dans laquelle j'ajoute mes variables puis de faire EXEC(sCmd).
    Lors de l'appel de ma fonction j'ai une erreur lors de l'execution de cette commande (syntaxe incorrecte vers 'premier paramètre de OpenXML').

    Voici la fonction que j'ai réaliser pour faire ce test unitaire :

    -- suppression de la fonction
    drop procedure sp_Openxml_test
    go

    -- création de la fonction
    CREATE PROCEDURE sp_Openxml_test
    @strXML ntext
    AS
    BEGIN
    DECLARE @iDoc int
    DECLARE @iIndex int
    DECLARE @sXPath varchar(50)
    DECLARE @sQuery varchar(200)

    SET @iIndex = 2
    SET @sXPath = 'Id[' + CAST(@iIndex as varchar(50)) + ']'

    EXECUTE sp_xml_preparedocument @iDoc OUTPUT, @strXML

    select @sQuery = 'SELECT *
    FROM OpenXML('+CAST(@iDoc as varchar(50))+', '+'''/Balise'''+', 2)
    WITH (
    ID varchar(10) '''+@sXPath+'''
    )'

    EXEC(@sQuery)

    EXECUTE sp_xml_removedocument @iDoc
    END
    GO

    -- appel de la fonction
    DECLARE @sDoc varchar(1000)
    SET @sDoc ='
    <Balise>
    <Id>25</Id>
    <Id>26</Id>
    </Balise>'

    EXEC sp_Openxml_test @sDoc


    Le problème semble être lié à l'interprétation du premier paramètre de OpenXml (@iDoc). Le message étant syntaxe incorrecte vers 'valeur numérique de @iDoc'

    Merci d'avance

  2. #2
    Membre actif Avatar de f_bobo
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Mai 2006
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 202
    Points : 281
    Points
    281
    Par défaut
    Salut,

    Dans un autre topic, l'utilisateur a rapporté avoir eu des problèmes en créant des procédures commençant par SP. Essais déjà sans le sp_ au début du nom de la procédure.
    Si c'est pas ça, il y aura toujours quelqu'un qui trouvera la solution, j'ai confiance dans les membres de DEV
    Cordialement,

    Florent

    Je penche donc je suis...

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Salut,
    J'ai fais le test et c'est le même tarif...

    J'avais lu ce problème de procédure dont le nom est préfixé par "sp_" mais à part que l'on a plus de chance de tomber sur une procédure système existante, je ne vois pas le problème lié a cela. Mais bon c'est un autre sujet.

    En tout cas merci pour la piste.

Discussions similaires

  1. Réponses: 5
    Dernier message: 26/02/2008, 12h45
  2. Récuperer le résultat d'une requête SQL dans une variable
    Par DashRendar dans le forum Accès aux données
    Réponses: 3
    Dernier message: 24/01/2008, 11h04
  3. passer du texte + une requête sql dans une variable
    Par Giantrick dans le forum Langage
    Réponses: 3
    Dernier message: 18/04/2007, 18h15
  4. Comment stocker une requête sql dans une variable ?
    Par innova dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 26/10/2006, 10h01
  5. Réponses: 4
    Dernier message: 27/04/2006, 14h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo