Nous avons crée une base de donnée sous Oracle. Une application java permet de stocker des fichiers XML dans une table Oracle. Et le document XML est stocke dans un seul attribut de la table XML_document1 de la BD dont l'attribut qui stock est de type : XML Type.
Nous devons extraire les données du document XML qui se trouve dans la BD pour mettre à jour d'autres table de la base de donnée.
Notre probléme, nous n'arrivons pas à extraire les données du document XML pour mettre à jour la BD.
Nous avons déjà tenté avec EXTRACT(), EXTRACTVALUE(), mais cela ne fonctionne pas, ou donne tout le document XML.
CREATE OR REPLACE PROCEDURE InsertXML ( text varchar2)
IS
BEGIN
INSERT INTO xml_document1 (XML_DOCUMENT)
VALUES (sys.XMLType.createXML(text));
END;
//Il faut que toutes les balises soit collés pour etre lu.
exec InsertXML (<list_expedition>
<expedition>
<idexped>1</idexped>
<datedepart>01/01/06</datedepart>
<heuredepart>01/03/06</heuredepart>
<datearrive>02/06/06</datearrive>
<heurearrive>20/06/06</heurearrive>
<nbcolis>3</nbcolis>
<idcamion>1</idcamion>
<identrepotdep>1</identrepotdep>
<identrepotarr>2</identrepotarr>
</expedition>
<expedition>
<idexped>2</idexped>
<datedepart>01/02/06</datedepart>
<heuredepart>10/02/06</heuredepart>
<datearrive>01/03/06</datearrive>
<heurearrive>15/03/06</heurearrive>
<nbcolis>3</nbcolis>
<idcamion>2</idcamion>
<identrepotdep>2</identrepotdep>
<identrepotarr>3</identrepotarr>
</expedition>
<expedition>
<idexped>3</idexped>
<datedepart>14/03/06</datedepart>
<heuredepart>15/03/06</heuredepart>
<datearrive>02/04/06</datearrive>
<heurearrive>10/04/06</heurearrive>
<nbcolis>10</nbcolis>
<idcamion>3</idcamion>
<identrepotdep>3</identrepotdep>
<identrepotarr>1</identrepotarr>
</expedition>
<expedition>
<idexped>4</idexped>
<datedepart>10/05/06</datedepart>
<heuredepart>14/05/06</heuredepart>
<datearrive>20/05/06</datearrive>
<heurearrive>25/05/06</heurearrive>
<nbcolis>3</nbcolis>
<idcamion>1</idcamion>
<identrepotdep>1</identrepotdep>
<identrepotarr>3</identrepotarr>
</expedition>
</list_expedition>);
CREATE TABLE xml_document1 (
FILENAME VARCHAR2(64),
XML_DOCUMENT sys.XMLType
)