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 :

Élément vide non affiché lors de la génération du XML


Sujet :

SQL Oracle

  1. #1
    Membre habitué Avatar de zemzoum89
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 373
    Points : 131
    Points
    131
    Par défaut Élément vide non affiché lors de la génération du XML
    Bonjour tout le monde,

    Voici mon soucis du jour.

    J'ai fais une requête qui me génere un XML.

    J'utilise XMLFOREST afin de chercher toutes les données correspondant à mes critères.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT XMLAGG ( XMLELEMENT("MON_ELEMENT",
    xmlforest(CHAMP1, CHAMP2, CHAMP3, CHAMP4, CHAMP5, CHAMP6))		
    ) FROM  MA_TABLE

    Ce qui me génère le résultat escompté.

    Par contre quand un attribut (CHAMP2) présent dans mon XMLFOREST est vide ou null il me génère même pas l’élément vide hors il
    se trouve que je veux qu'il me génère l'élément même si il est vide.

    Merci d'avance

  2. #2
    Membre habitué
    Inscrit en
    Septembre 2008
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 101
    Points : 126
    Points
    126
    Par défaut
    Bonjour,

    Le problème, c'est que justement c'est une caractéristique de XMLForest :
    If value_expr is null, then no element is created for that value_expr.
    (lien).

    Ce n'est peut etre pas une bonne idée, mais voila quelque chose qui peut fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    with t as (
    Select Null A, '1' B, '2' C From DUAL All
    Select '0' A, '1' B, '2' C From DUAL)
    Select TO_CLOB(Replace(AA, '>X<', '><')) AA
      From (Select XMLAGG(XMLELEMENT("MON_ELEMENT", XMLFOREST(NVL(A, 'X') A, NVL(B, 'X') B, NVL(C, 'X') C))) AA
              From T)

  3. #3
    Membre habitué Avatar de zemzoum89
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 373
    Points : 131
    Points
    131
    Par défaut
    Bonjour,

    Merci de votre retour, n'y a t il pas une autre solution pour ce problème ?

    J'avais déjà testé celle que vous m'avez donné mais voila le résultat que j'ai eu:



    J'ai une requête très lourde à développer et avec une solution comme celle ci la requête serait difficilement maintenable dans le futur, si y a une autre solution je suis preneur.


    Merci d'avance


    PS: L'autre solution que j'ai trouvé jusqu'à maintenant c'est de ne pas utiliser de XMLFOREST et d'utiliser directement plusieurs XMLELEMENT, j'espère qu'il y a une meilleure solution...

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Citation Envoyé par zemzoum89 Voir le message
    PS: L'autre solution que j'ai trouvé jusqu'à maintenant c'est de ne pas utiliser de XMLFOREST et d'utiliser directement plusieurs XMLELEMENT, j'espère qu'il y a une meilleure solution...
    Vous avez pris la meilleure option.
    De mémoire, XMLForest ne sait pas non plus gérer les attributs contrairement à XMLElement.

  5. #5
    Membre habitué Avatar de zemzoum89
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    373
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 373
    Points : 131
    Points
    131
    Par défaut
    OK Merci beaucoup pour votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD15] date vide non affiche après filtre?
    Par 3alit dans le forum WinDev
    Réponses: 2
    Dernier message: 27/08/2012, 08h33
  2. [JDOM] Rajout du schéma de vérification lors d'un génération de XML
    Par tapadami dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 04/08/2011, 16h17
  3. Réponses: 7
    Dernier message: 04/12/2010, 12h25
  4. Réponses: 2
    Dernier message: 12/08/2008, 15h25

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