Générer du XML avec Oracle.

Posted on mai 10th, 2007 in DataBase, Oracle, Tips by David

Depuis la version 9i, Oracle donne la possibilité de générer et gérer du XML via le composant XML DB.

Pour générer un flux, on dispose des packages DBMS_XMLDOM et DBMS_XMLGEN.

Le seul problème c’est qu’il faut installer l’option complete pour pouvoir utiliser uniquement deux package … heureusement il existe une solution alternative : SYS_XMLGEN et SYS_XMLAGG , fournis en standard avec le moteur Oracle.

Petit exemple :

SELECT SYS_XMLGEN(email)
FROM employees
WHERE employee_id = 205;

SYS_XMLGEN(EMAIL)
——————————————————————-
<?xml version=”1.0”?>
<EMAIL>SHIGGINS</EMAIL>

Pas mal … mais peux mieux faire :)

Maintenant, on peut utiliser SYS_XMLAGG pour générer un ensemble de résultats :

SELECT SYS_XMLAGG(SYS_XMLGEN(last_name))
FROM employees
WHERE last_name LIKE ‘R%’;

SYS_XMLAGG(SYS_XMLGEN(LAST_NAME))
——————————————————————–
<ROWSET>
<LAST_NAME>Raphaely</LAST_NAME>
<LAST_NAME>Rogers</LAST_NAME>
<LAST_NAME>Rajs</LAST_NAME>
<LAST_NAME>Russell</LAST_NAME>
</ROWSET>

En suite il ne reste plus qu’a générer le fichier, avec un UTL_FILE par exemple…

a+ !

Post a comment