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+ !