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 :

Select dans un XML stocké dans un CLOB (Oracle 10g)


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 90
    Par défaut Select dans un XML stocké dans un CLOB (Oracle 10g)
    Bonjour,

    J'ai une table qui ressemble à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    create table HOST_QUERY
    (
      ID          NUMBER(28) not null,
      SUBMITTED   DATE not null,
      REQUEST_XML CLOB
    )
    le champ HOST_QUERY.REQUEST_XML est donc un CLOB qui contient un XML de ce type ci :
    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
    <message>
        <hst_host_query>
            <field_020>89GEN0</field_020>
            <field_021 isNull="true"/>
            <field_022 isNull="true"/>
            <field_026>89364550</field_026>
            <field_027 isNull="true"/>
        </hst_host_query>
        <fields>
            <field_014 isNull="true"/>
            <field_015>NL</field_015>
            <field_016>tscnb2</field_016>
            <field_017 isNull="true"/>
            <field_019>04</field_019>
            <field_020 isNull="true"/>
        </fields>
    </message>
    Je voudrais faire un select qui me permet d'extraire du XMl les données message.hst_host_query.field_020 (=89GEN0) et message.fields.field_015 (=NL).

    Je ne peux pas modifier la table et donc pas possible de transformer le CLOB en XMLTYPE. Je n'ai pas non plus de schema registré (mais si nécéssaire je dois pouvoir en créer un via PL/SQL et le faire disparaître une fois les données récoltées).

    Quelqu'un à une idée ?

    merci

  2. #2
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Easy XML - a Programming Oriented Approach
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    SQL> column field_020 format a20
    SQL> column field_015 format a20
    SQL> r
      1  Select extractvalue(x.column_value,'/hst_host_query/field_020') field_020,
      2     extractvalue(y.column_value,'/fields/field_015') field_015
      3    From host_query
      4         ,table(xmlsequence(extract(xmltype(host_query.request_xml),'/message/hst_host_query')))(+) x
      5*        ,table(xmlsequence(extract(xmltype(host_query.request_xml),'/message/fields')))(+) y
     
    FIELD_020            FIELD_015
    -------------------- --------------------
    89GEN0               NL

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 23/03/2012, 16h56
  2. [SWING][Synth]Lire les propriétés stockées dans synth.xml
    Par salaunga77 dans le forum AWT/Swing
    Réponses: 0
    Dernier message: 27/03/2009, 17h26
  3. Appels de procedures stockées dans une proc stockée ?
    Par Nadaa dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 17/07/2008, 10h32
  4. Réponses: 8
    Dernier message: 27/04/2006, 23h02
  5. Réponses: 3
    Dernier message: 21/09/2004, 07h35

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