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 :

Problème avec l'erreur Oracle ORA-19025


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
    Janvier 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 200
    Par défaut Problème avec l'erreur Oracle ORA-19025
    Bonjour la team,

    j'ai une table 'ma_table' dans laquelle figurent plusieurs enregistrements contenant une structure XML. Lorsque je fais la requête suivante, j'arrive bien à avoir un résultat:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select *
    from ma_table
    where extractValue( structure_xml, '//mon_noeud) = 'TEST'
    and mon_id = 1;
    Par contre lorsque je ne précise pas l'id, j'obtiens l'erreur Oracle suivante:

    ORA-19025: EXTRACTVALUE returns value of only one node
    19025. 00000 - "EXTRACTVALUE returns value of only one node"
    *Cause: Given XPath points to more than one node.
    *Action: Rewrite the query so that exactly one node is returned.
    Apparemment, plusieurs valeurs peuvent être extraites pour certains enregistrements. Savez-vous me dire s'il est possible de réécrire cette requête de façon à retourner des enregistrements ?

    Merci d'avance pour votre aide,
    berni.

  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
    Par défaut
    peut-être XMLEXISTS?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SQL> create table ma_table(mon_id number, structure_xml xmltype)
    Table created.
    SQL> insert into ma_table values (1,xmltype('<mon><noeud>TEST</noeud></mon>'))
    1 row created.
    SQL> insert into ma_table values (2,xmltype('<mon><noeud>TEST</noeud><noeud>TEST2</noeud></mon>'))
    1 row created.
    SQL> insert into ma_table values (3,xmltype('<mon><noeud>XXX</noeud><noeud>YYY</noeud></mon>'))
    1 row created.
    SQL> commit
    Commit complete.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SQL> SELECT *
    FROM ma_table
    WHERE extractValue( structure_xml, '//mon/noeud/text()') = 'TEST'
    and mon_id = 1
     
        MON_ID STRUCTURE_XML                             
    ---------- ------------------------------------------
             1 <mon>                                     
                 <noeud>TEST</noeud>                     
               </mon>                                    
     
     
    1 row selected.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SQL> SELECT *
    FROM ma_table
    WHERE extractValue( structure_xml, '//mon/noeud/text()') = 'TEST'
    SELECT *
    FROM ma_table
    WHERE extractValue( structure_xml, '//mon/noeud/text()') = 'TEST'
         *
    Error at line 2
    ORA-19025: EXTRACTVALUE returns value of only one node
    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
    SQL> SELECT *
    FROM ma_table
    WHERE xmlexists(  '//mon[noeud="TEST"]' passing structure_xml)
     
        MON_ID STRUCTURE_XML                             
    ---------- ------------------------------------------
             1 <mon>                                     
                 <noeud>TEST</noeud>                     
               </mon>                                    
     
     
             2 <mon>                                     
                 <noeud>TEST</noeud>                     
                 <noeud>TEST2</noeud>                    
               </mon>

  3. #3
    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
    Par défaut
    aussi possible
    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
    SQL> SELECT * FROM ma_table
    WHERE 'TEST' in (
      select extractvalue(value(t), '//noeud/text()') 
      from table(xmlsequence(extract(structure_xml,'//mon/noeud')))t)
     
        MON_ID STRUCTURE_XML                             
    ---------- ------------------------------------------
             1 <mon>                                     
                 <noeud>TEST</noeud>                     
               </mon>                                    
     
             2 <mon>                                     
                 <noeud>TEST</noeud>                     
                 <noeud>TEST2</noeud>                    
               </mon>

Discussions similaires

  1. [V6] Deski 6.1.3 : Erreur DA0005 avec erreur Oracle ORA-06401
    Par slupo1972 dans le forum Deski
    Réponses: 4
    Dernier message: 05/05/2010, 17h48
  2. Erreur Oracle ORA-12154 avec 10g et odp .NET
    Par Xaar dans le forum Connexions aux bases de données
    Réponses: 2
    Dernier message: 27/03/2008, 10h12
  3. Problème avec l'erreur 3464 sur access
    Par somalien10 dans le forum Access
    Réponses: 10
    Dernier message: 16/05/2006, 09h30
  4. Problème avec sizeof(...) : erreur de taille
    Par Invité dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 06/05/2006, 12h53
  5. Erreur Oracle ORA-30036
    Par lapartdombre dans le forum Oracle
    Réponses: 5
    Dernier message: 04/11/2005, 15h37

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