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

Développement SQL Server Discussion :

Fichier XML depuis une requête SQL


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Directeur des opérations
    Inscrit en
    Octobre 2021
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Directeur des opérations
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2021
    Messages : 7
    Par défaut Fichier XML depuis une requête SQL
    Bonjour à toutes et à tous,

    J'utilise Management Studio dans lequel j'ai créer une requête en T-SQL en vue de produire au final un fichier XML.
    Si pour l'écriture de la requête, je pense être arrivé à ce que je voulais, le résultat me donne un lien sur lequel je peux cliquer et ainsi voir ( je présume dans l'éditeur xml ) le résultat détaillé.

    Par contre je ne sais pas comment à partir de ce lien générer un fichier xml ?
    J'ai essayé de passer par Report Builder car je devrais à terme automatiser ce flux mais le rendu ne me semble pas propre.

    La réponse est peut être simple mais après pas mal de recherche je n'ai pas trouvé d'aide.

    Par ailleurs, il manque l'entête du fichier xml mais ça c'est un autre problème. Il doit être possible de l'ajouter dans la requête ?

    Merci de votre aide,

    LioLGM

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 002
    Billets dans le blog
    6
    Par défaut
    Vous pouvez le faire soit dans votre application, soit par l'utilitaire en ligne de commande sqlcmd.exe
    Pour ce dernier cas lire :
    https://docs.microsoft.com/fr-fr/sql...-output-format


    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Directeur des opérations
    Inscrit en
    Octobre 2021
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Directeur des opérations
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2021
    Messages : 7
    Par défaut
    Merci pour ton aide.
    J'ai un peu avancé du coup. J'ai activé le mode SQLCMD.

    Par contre la commande :XML ON renvoi le message d'erreur " Avertissement pour le script. Commande*Xml non prise en charge. La chaîne n'a pas été traitée. "
    Du coup j'ai bien un fichier en sortie mais il n'est pas au format XML ??

    Je mets ma requête ci-dessous au cas ou :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    *********************
     
    :XML ON
     
    :out c:\test.xml
     
    SELECT 
     
    CodeActivite = '1111'
    ,CONCAT (TRIM(ART.REF),TRIM(SART.SREF1)) as CodeArticle
    ,TRIM (DES ) as Designation  
    , CodeArticleFournisseur ='99' 
    ,Motif = 'C'
    ,TypeMarchandise ='99'
     
    FROM 
     
    ART 
    INNER JOIN
    SART 
    on 
    SART.REF=ART.REF 
     
    WHERE
    ART.DOS='1'
    and
    SART.DOS='1'
    and
    HSDT IS NULL
    and
    ART.REF IN('010000100001','010000100002')
     
    FOR XML RAW ('Article'),elements 
     
     
    *****************************************

    Lio_LGM

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 002
    Billets dans le blog
    6
    Par défaut
    Vous devez exécuter SQLcmd.exe en ligne de commande et non au sein de SSMS.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre éprouvé
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Mars 2016
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Mars 2016
    Messages : 58
    Par défaut
    Bonjour,

    Juste une remarque en annexe de la question posée la jointure devrait se faire sur SART.DOS = ART.DOS and SART.REF = ART.REF pour les tables des articles et sous références de Divalto

    C’est aussi toujours une bonne idée de prefixer tous les noms de colonnes par les noms de tables (ART.DES, ART.HSDT)

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Directeur des opérations
    Inscrit en
    Octobre 2021
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Directeur des opérations
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2021
    Messages : 7
    Par défaut
    Bonjour,

    @sqllm : oui c'est exact pour les jointures j'ai fait vite ( ce qui n'est pas une excuse ) mais bon pour ce fichier xml mon principal souci pour le moment c'est d'essayer à arriver à pondre un fichier xml exploitable.

    @SQLpro : j'ai pu installer les packages nécessaire pour pouvoir utiliser sqlcmd.exe

    Par contre mon fichier en sortie se créer mais il est vide ( 0Ko)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    C:\>sqlcmd -S SRV-DIV-SQL 
    1>
    2>
    3> :XML ON
    3>
    4> USE [GOUIRAN]
    5>
    6> :out c:\test.xml
    6>
    7> SELECT
    8>
    9> CodeActivite = '1111'
    10> ,CONCAT (TRIM(ART.REF),TRIM(SART.SREF1)) as CodeArticle -- coupé à 30 caract
    11> ,TRIM (DES ) as Designation  -- coupé à 128 caract
    12> , CodeArticleFournisseur ='99' -- coupé à 128 caract
    13> ,Motif = 'C'
    14> ,TypeMarchandise ='99'
    15>
    16> FROM
    17>
    18> ART
    19> INNER JOIN
    20> SART
    21> on
    22> SART.REF=ART.REF
    23>
    24> WHERE
    25> ART.DOS='1'
    26> and
    27> SART.DOS='1'
    28> and
    29> HSDT IS NULL
    30> and
    31> ART.REF IN('010000100001','010000100002')
    32>
    33> --FOR XML AUTO, TYPE
    34>
    35> FOR XML RAW ('Article'),elements
    36>
    37>
    38>
    39>

Discussions similaires

  1. lire dans un fichier xml depuis une tâche ant
    Par wildmary dans le forum ANT
    Réponses: 7
    Dernier message: 03/08/2009, 12h51
  2. Remplissage de QComboBox depuis une requête SQL
    Par L0101SA dans le forum Bases de données
    Réponses: 2
    Dernier message: 01/03/2008, 20h42
  3. Lancement d'un exe depuis une requête SQL
    Par mister_rom dans le forum Développement
    Réponses: 5
    Dernier message: 29/11/2007, 10h27
  4. enregistrement de fichier XML dans une base SQL
    Par yelkam dans le forum XQUERY/SGBD
    Réponses: 1
    Dernier message: 18/07/2007, 08h58
  5. acceder à un fichier xml depuis une jsp
    Par rvfranck dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 04/10/2006, 18h12

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