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

SQL Oracle Discussion :

SQL vers XML


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Juillet 2002
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 1
    Par défaut SQL vers XML
    Bonjour,

    je débute avec les fonctions XMLFOREST, XMLAGG.

    J'ai un fichier tel que :
    PROVITYPE DATEECH MONTAE
    TRA 01/07/17 49,30
    TRA 01/04/17 47,84
    PLA 01/07/17 965,80
    PLA 01/04/17 965,80
    PLA 01/10/17 459,82
    PLA 01/07/17 459,82
    PLA 01/10/17 539,06
    PLA 01/07/17 539,06

    A partir d'une simple requête SQL, je souhaiterai obtenir le résultat suivant :

    <planif>
    <type>TRA</type>
    <echeances>
    <echeance>
    <date>01/07/17</date>
    <montant>49.30</montant>
    </echeance>
    <echeance>
    <date>01/04/17</date>
    <montant>47.84</montant>
    </echeance>[/INDENT][/INDENT]</echeances>
    </planif>
    <planif>[/INDENT][/INDENT]<type>PLA</type>
    <echeances>
    <echeance>
    <date>01/07/17</date>
    <montant>965,80</montant>
    ...

    Merci par avance pour votre aide ...

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Essayez ainsi :
    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    with cte_datas (provitype, dateech, montae) as
    (
    select 'TRA', date '2017-07-01',  49.30 from dual union all
    select 'TRA', date '2017-04-01',  47.84 from dual union all
    select 'PLA', date '2017-07-01', 965.80 from dual union all
    select 'PLA', date '2017-04-01', 965.80 from dual union all
    select 'PLA', date '2017-10-01', 459.82 from dual union all
    select 'PLA', date '2017-07-01', 459.82 from dual union all
    select 'PLA', date '2017-10-01', 539.06 from dual union all
    select 'PLA', date '2017-07-01', 539.06 from dual
    )
      select substr(XMLRoot(XMLAgg(XMLElement("planif",
                      XMLForest(provitype as "type",
                               XMLAgg(XMLElement("echeance",
                                    XMLForest(dateech as "date", montae as "montant"))) as "echeances")) order by provitype desc),
                            version '1.0" encoding="UTF-8').getClobVal(), 40) as XML
        from cte_datas
    group by provitype;
     
    <planif>
      <type>TRA</type>
      <echeances>
        <echeance>
          <date>2017-07-01</date>
          <montant>49.3</montant>
        </echeance>
        <echeance>
          <date>2017-04-01</date>
          <montant>47.84</montant>
        </echeance>
      </echeances>
    </planif>
    <planif>
      <type>PLA</type>
      <echeances>
        <echeance>
          <date>2017-07-01</date>
          <montant>965.8</montant>
        </echeance>
        <echeance>
          <date>2017-07-01</date>
          <montant>539.06</montant>
        </echeance>
        <echeance>
          <date>2017-10-01</date>
          <montant>539.06</montant>
        </echeance>
        <echeance>
          <date>2017-07-01</date>
          <montant>459.82</montant>
        </echeance>
        <echeance>
          <date>2017-10-01</date>
          <montant>459.82</montant>
        </echeance>
        <echeance>
          <date>2017-04-01</date>
          <montant>965.8</montant>
        </echeance>
      </echeances>
    </planif>

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/02/2015, 10h05
  2. requete sql vers xml
    Par vittirivizzik dans le forum XML/XSL et SOAP
    Réponses: 0
    Dernier message: 16/01/2013, 16h41
  3. Réponses: 1
    Dernier message: 02/05/2011, 23h27
  4. Exportation des accents SQL vers DBF avec XML et XSLT
    Par toumack dans le forum XQUERY/SGBD
    Réponses: 0
    Dernier message: 22/01/2011, 21h42
  5. [SGBDR] [SQL Server]Exportation de données vers XML
    Par Zhykis dans le forum XQUERY/SGBD
    Réponses: 3
    Dernier message: 04/10/2010, 09h42

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