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 de transtypage CLOB->XMLTYPE


Sujet :

SQL Oracle

  1. #1
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 932
    Par défaut Problème de transtypage CLOB->XMLTYPE
    Bonjour,
    J'ai une table déclarée ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE TABLE XSOURCE
    (
      ID_OBJ  INTEGER                               NOT NULL,
      LC_DOC  VARCHAR2(105 BYTE),
      OB_DOC  CLOB)
    et peuplée de quelques milliers de lignes.
    La colonne en CLOB contient normalement du XML.

    J'ai une autre table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE TABLE XCIBLE
    (
      ID_OBJ   INTEGER                              NOT NULL,
      LC_DOC   VARCHAR2(105 BYTE),
      XML_DOC  SYS.XMLTYPE)
    que je souhaite alimenter par le contenu de la 1ère:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO XCIBLE
    (  ID_OBJ, LC_DOC, XML_DOC) 
    ( SELECT ID_OBJ, LC_DOC, XMLTYPE(OB_DOC) FROM XSOURCE)
    Mais, j'obtiens cette erreur
    ORA-31011: Echec d'analyse XML
    ORA-19202: Une erreur s'est produite lors du traitement la fonction XML (
    LPX-00216: invalid character 156 (0x9C)
    Error at line 33
    )
    ORA-06512: à "SYS.XMLTYPE", ligne 0
    ORA-06512: à ligne 1
    Le caractère 156 correspond a priori à £ (livre anglaise).

    Je n'avais qu'une ligne contenant ce caractère; je l'ai supprimé.
    La requète
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT ID_OBJ, LC_DOC, OB_DOC FROM XSOURCE
     WHERE OB_DOC LIKE '%£%'
    m'avait permis de trouver cette ligne, mais ne sélectionne plus rien maintenant.

    Pourtant l'erreur persiste

    Quelqu'un a t-il une idée, une solution ?
    Je suis sous Oracle 9.2

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Visiblement c'est un problème de character set.

    En cherchant un peu sur le web j'ai trouvé :
    http://forums.oracle.com/forums/thre...sageID=1255505
    A moins que ce soit un bug : https://metalink.oracle.com/metalink...,1,1,helvetica

    une autre note intéressante : https://metalink.oracle.com/metalink...,1,1,helvetica

    Bon courage

  3. #3
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 932
    Par défaut
    Hum... maigre piste

    Je vais tenter de la suivre.
    Merci.

  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
    Je pense que vous problèmes sont ailleurs, probablement que la zone ne contient pas du XML
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
     
    ConnectÚ Ó :
    Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
     
    mni@DIANA> CREATE TABLE XSOURCE
      2  (
      3    ID_OBJ  INTEGER                               NOT NULL,
      4    LC_DOC  VARCHAR2(105 BYTE),
      5    OB_DOC  CLOB)
      6  /
     
    Table crÚÚe.
     
    mni@DIANA> CREATE TABLE XCIBLE
      2  (
      3    ID_OBJ   INTEGER                              NOT NULL,
      4    LC_DOC   VARCHAR2(105 BYTE),
      5    XML_DOC  SYS.XMLTYPE)
      6  /
     
    Table crÚÚe.
     
    mni@DIANA> insert into xsource
      2  select 1, 'TEST',
      3  to_clob(dbms_xmlgen.getxmltype('select * from emp')) from dual
      4  /
     
    1 ligne crÚÚe.
     
    mni@DIANA>
    mni@DIANA> update xsource set ob_doc = REPLACE(ob_doc,'JAMES','£')
      2  /
     
    1 ligne mise Ó jour.
     
    mni@DIANA>
    mni@DIANA> INSERT INTO XCIBLE
      2  (  ID_OBJ, LC_DOC, XML_DOC)
      3  ( SELECT ID_OBJ, LC_DOC, XMLTYPE(OB_DOC) FROM XSOURCE)
      4  /
     
    1 ligne crÚÚe.
     
    Select * from xcible;
    ...
    <ROW>
     <EMPNO>7900</EMPNO>
     <ENAME>£</ENAME>
     <JOB>CLERK</JOB>
     <MGR>7698</MGR>
     <HIREDATE>03/12/81</HIREDATE>
     <SAL>950</SAL>
     <DEPTNO>30</DEPTNO>
    </ROW>
    <ROW>
     <EMPNO>7902</EMPNO>
     <ENAME>FORD</ENAME>
     <JOB>ANALYST</JOB>
     <MGR>7566</MGR>
     <HIREDATE>03/12/81</HIREDATE>
     <SAL>3000</SAL>
     <DEPTNO>20</DEPTNO>
    </ROW>
    <ROW>
    ...

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Tu ne sais même pas si tu as le même character set... j'vois pas bien ce que ça apporte ce test

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

Discussions similaires

  1. Problème avec le CLOB
    Par ghostdog dans le forum Oracle
    Réponses: 4
    Dernier message: 05/03/2007, 17h51
  2. problème de transtypage (enfin je crois)
    Par troussepoil dans le forum C++
    Réponses: 5
    Dernier message: 02/03/2007, 17h32
  3. Problème de transtypage (ou de pointeur)
    Par seeme dans le forum C++
    Réponses: 3
    Dernier message: 20/12/2006, 09h36
  4. problème de transtypage
    Par salseropom dans le forum C
    Réponses: 5
    Dernier message: 30/08/2006, 10h59
  5. Problème de transtypage
    Par SunSyS dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 31/07/2006, 18h03

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