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 :

affichage des colonnes "Null" en XML


Sujet :

SQL Oracle

  1. #1
    Membre éprouvé Avatar de Yorglaa
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    845
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2004
    Messages : 845
    Points : 931
    Points
    931
    Par défaut affichage des colonnes "Null" en XML
    Bonjour,
    j'utilise une méthode "pompée" ici même pour générer un fichier XML depuis un Select, mais il semble que si une colonne renvoie Null elle ne figure pas du tout dans le résultat en XML...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    declare
        rc sys_refcursor;
    begin
            open rc for 
                        Select
                                sysdate as today
                                , Null as coucou
                                , sysdate +1 as tomorrow
                        From    Dual ;
            dbms_xslprocessor.clob2file(xmltype(rc).getclobval,'DIR_LCV5','toto.xml');
    end;
    me revoie :
    <?xml version="1.0"?>
    <ROWSET>
    <ROW>
    <TODAY>07/04/08</TODAY>
    <TOMORROW>08/04/08</TOMORROW>
    </ROW>
    </ROWSET>
    or ce que j'aimerais c'est avoir également la colonne "coucou" avec juste la balise ouvrante et fermante, sans données...
    Le seul myen que j'ai trouvé c'est avec un Decode qui renvoie un espace... mais je préfèrerais avoir la balises ouvrantes/fermante sans espace entre deux...

    savez-vous si il y a une moyen, un paramètre ou autre ?

    merci d'avance pour vos infos !

    EDIT :
    ah oui, je suis en 9.2.0.7
    Il est plus facile de voir les signes avant-coureurs après coup que l'inverse !

    Yorglaa

  2. #2
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    tu peux tenter avec DBMS_XMLGEN par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    declare
      ctx dbms_xmlgen.ctxhandle;
    begin
      ctx := dbms_xmlgen.newcontext('select 1 x, null y, 2 z from dual');
      dbms_xmlgen.setnullhandling(ctx,dbms_xmlgen.empty_tag); 
      dbms_xslprocessor.clob2file(dbms_xmlgen.getxmltype(ctx).getclobval,
        'DATA_PUMP_DIR','toto.xml');
    end;
    /
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <ROWSET>
     <ROW>
      <X>1</X>
      <Y/>
      <Z>2</Z>
     </ROW>
    </ROWSET>

  3. #3
    Membre éprouvé Avatar de Yorglaa
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    845
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2004
    Messages : 845
    Points : 931
    Points
    931
    Par défaut
    Super, merci beaucoup...
    en plus je peux même utiliser cette méthode avec un sys_refcusor !
    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
    declare
        rc          sys_refcursor;
        ctx         dbms_xmlgen.ctxhandle;
    begin
     
            open rc for Select
                                sysdate as today
                                , Null as coucou
                                , sysdate +1 as tomorrow
                        From    Dual ;
     
            ctx := dbms_xmlgen.newcontext(rc) ;
            dbms_xmlgen.setnullhandling(ctx,dbms_xmlgen.Empty_Tag) ; 
            dbms_xslprocessor.clob2file(dbms_xmlgen.getxmltype(ctx).getclobval,'DIR_XML','toto.xml') ;
    end;
    merci encore !
    Il est plus facile de voir les signes avant-coureurs après coup que l'inverse !

    Yorglaa

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

Discussions similaires

  1. DBGrid et format d'affichage des colonnes
    Par jakouz dans le forum Composants VCL
    Réponses: 3
    Dernier message: 03/08/2005, 14h10

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