Bonjour à tous.

Sur une base de données 11g, je dispose de la fonction suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
CREATE OR REPLACE PROCEDURE XML IS
 xml_result xmltype;
 doc        dbms_xmldom.DOMDocument;
BEGIN
 xml_result := dbms_xmlgen.getXMLType(requete);
 doc := dbms_xmldom.newDOMDocument(xml_result);
 dbms_xmldom.writeToFile(doc, 'my_dir/test.xml', 'ISO-8859-1');
 dbms_xmldom.freeDocument(doc);
END;
/
Cette fonction génère un fichier qui ressemble à ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="ISO-8859-1"?>
<ROWSET>
  <ROW>
<COL1>VAL1</COL1>
<COL2>VAL2</COL2>
  </ROW>
  <ROW>
....
</ROW>
</ROWSET>
Ca me va très bien, mais c'est la seule méthode que je connaisse.

Maintenant sous 10gr2, je dois faire quelque chose qui ressemble à ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?xml version="1.0" encoding="ISO-8859-1"?>
-<fichier>
-<entête>
<COL1>VAL1</COL1>
<COL2>VAL2</COL2>
</entête>
<creation />
-<lignes>
-<ligne>
<COL1>VAL1</COL1>
<COL2>VAL2</COL2>
</ligne>
-<ligne>
<COL1>VAL1</COL1>
<COL2>VAL2</COL2>
</ligne>
</lignes>
</fichier>
Mais je ne sais pas du tout comment faire pour pouvoir insérer mes propres noms de balises pour entourer une ligne du résultat de ma requête SQL, ou pour mettre une balise seule au beau milieu du fichier.

Est-ce qu'il y a une façon simple de faire avec des fonctions XML déjà existante, intégrées à la base de données ?
Ou est-ce que je me prendrais bien moins la tête à utiliser directement utl_file pour générer moi-même un fichier XML ?

Merci d'avance pour vos réponses.

Jérémy.