XML DB

Un article de Wikipédia, l'encyclopédie libre.

XML DB est un module de gestion XML intégré au Système de gestion de base de données Oracle.

Sommaire

[modifier] Oracle XML DB

Cette technologie étend les possibilités de la base de données relationnelle d'Oracle en proposant toutes les fonctionnalités d'une base de données XML. Le module Oracle XML DB offre une structure indépendante de stockage et de gestion de données XML. Il propose les fonctionnalités suivantes :

  • Un type de données XML qui est utilisé pour stocker et gérer du contenu XML.
  • Une collection de méthodes et des opérateurs SQL permettant d'agir sur du XML.
  • La possibilité d'enregistrer un schéma conforme au W3C dans la base de données Oracle.

XMLType

Depuis la version 9i d'Oracle, un nouveau type de données appelé XMLType a fait son apparition. Il possède un certain nombre de fonctions permettant de créer, extraire et indexer des données XML stockées dans le SGBD Oracle. En tant que nouveau type de données, XMLType peut être utilisé comme type pour colonnes dans des tables et des vues ainsi que dans des procédures stockées PL/SQL. Avec le type XMLType et ses possibilités, les développeurs disposent de toutes les possibilités d'une base de données relationnelle tout en travaillant avec des données sous format XML.

[modifier] Fonctionnalités de base

[modifier] Création d'une table

La création d'une table permettant de stocker des types XML est aussi simple que la création d'une table habituelle dans Oracle, en utilisant la syntaxe standard de SQL :

SQL> create table COMMANDES (comm XMLTYPE);

Cette commande créé une table contenant une colonne comm de type XMLType.

[modifier] Insertion de données XML dans une table

La commande suivante va insérer dans une colonne de type XMLType un document XML :

SQL> insert into COMMANDES (comm) values (sys.XMLTYPE.createXML ('<commande>…</commande>'));

La fonction createXML() va convertir les balises passées en paramètre en un contenu de type XMLType.

[modifier] Requête sur une table XML

La commande suivante permet d'obtenir le contenu entier d'une table XML :

SQL> select c.comm.getClobVal() from COMMANDES c;

Il est également possible d'obtenir certains nœuds uniquement :

SQL> select c.comm.extract('/commande/ligneCommande').getClobVal() from COMMANDES c where c.comm.extract('commande/ligneCommande/idClient/text()').getStringVal() = '1234124' ;