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