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 :

Convertir Long en XMLTYPE


Sujet :

SQL Oracle

  1. #1
    Membre régulier
    Inscrit en
    Mai 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 9
    Par défaut Convertir Long en XMLTYPE
    Bonjour, je débute avec le PL/SQL sous Oracle9i et voici mon problème:

    Je dois extraire la valeur d'une balise d'un document XML, ce dernier est stocké dans un champ de type Long, j'aimerais l'extraire dans une variable XMLTYPE de PL/SQL et faire mon extraction grace au paquetages dispo (xmlgen...); donc comment extraire un champ long dans une variable XMLTYPE.

    Merci d'avance.

  2. #2
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Ceci ne fontionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE tatable
         SET col_xml = col_long;

  3. #3
    Membre régulier
    Inscrit en
    Mai 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 9
    Par défaut
    en fait je ne veut pas modifié ma table, juste extraire une donnée

  4. #4
    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
    Utilisez une table temporarire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    create global temporary table t_lob as select to_lob(text) text from user_views where 1 = 2
    /
    insert into t_lob select to_lob(text) text from user_views where rownum = 1
    /

  5. #5
    Membre régulier
    Inscrit en
    Mai 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 9
    Par défaut
    et le type xmltype?

  6. #6
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select sys_xmlgen(text).getclobval() from t_lob

  7. #7
    Membre régulier
    Inscrit en
    Mai 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 9
    Par défaut
    Merci. Je vous fais part des résultats

  8. #8
    Membre régulier
    Inscrit en
    Mai 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 9
    Par défaut
    Salut et encore merci.
    Je suis passé par un table intermédiaire avec une colonne "clob". Mais la fonction "sys_xmlgen" convertisait mal(pour moi), donc j'ai plus tôt utiliser "sys.xmltype.createxml".

    exemple avec sys_xmlgen
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    select sys_xmlgen(contenu).getclobval()
    from admguce.dossier3
    where numero=10399
     
    SYS_XMLGEN(CONTENU).GETCLOBVAL()
    --------------------------------------------------------------------------------
    <?xml version="1.0"?>
    <CONTENU>
    &lt;DOCUMENT&gt;
    &lt;TYPE_DOCUMENT&gt;Z01&lt;/TY
    ...
    exemple avec sys.xmltype.createxml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    select sys.xmltype.createxml(contenu).getclobval()
    from admguce.dossier3
    where numero=10399
     
    SYS.XMLTYPE.CREATEXML(CONTENU).GETCLOBVAL()
    --------------------------------------------------------------------------------
     
    <DOCUMENT>
    <TYPE_DOCUMENT>Z01</TYPE_DOCUMENT>
     
    <TYPE_MESSAGE>SANCRT</TYPE_MESSA
    ...
    Cordialement.

  9. #9
    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 simplement ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select xmltype(contenu).getclobval()
    from admguce.dossier3
    where numero=10399;

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

Discussions similaires

  1. Convertir Long[] en long[]
    Par Eylir dans le forum Langage
    Réponses: 2
    Dernier message: 29/04/2008, 17h11
  2. Convertir un champ BLOB en LONG RAW
    Par Friz dans le forum Oracle
    Réponses: 5
    Dernier message: 13/01/2006, 15h31
  3. convertir un long en byte[]
    Par le y@m's dans le forum Langage
    Réponses: 11
    Dernier message: 02/11/2005, 19h56
  4. Convertir un entier long en string
    Par aroueche dans le forum C
    Réponses: 5
    Dernier message: 12/07/2004, 14h48
  5. convertir un nom long (win32) en format dos (8+3)
    Par kylekiller dans le forum Langage
    Réponses: 2
    Dernier message: 30/08/2002, 14h34

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