La version 9i d'Oracle a introduit un nouveau type de données, à savoir XMLtype ; les données XML peuvent être stockées d'une manière classique au sein des tables ou dans des LOB (et donc être physiquement externalisé du tablespace), voici un aperçu de son utilisation :
Soit une table livre :
create table livre (id_livre number, id_auteur number, titre varchar2(2000), resume XMLTYPE)
XMLTYPE COLUMN "resume" store as clob (tablespace tbslob);
Recherche d'un tuple en fonction d'une valeur dans un champ XML
select * from livre where
resume.extract('//titre/text()').getStringVal() = 'Tuning Oracle';SELECT titre, extractValue(resume, '//chapitre/numero/text()').getStringVal()
FROM livre
WHERE resume.exists('//chapitre[titre = "Tuning Oracle"]')=1;
Index sur un champ d'une balise XML présent dans une table
create index livre_chap ON livre
(resume.extract('//conclusion/titre/text()'));
Voir aussi :
- Fonction Oracle à partir d'une procédure java
- Les colonnes virtuelles en 11g
- Créer un index de fonction
