1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| create or replace PROCEDURE AGG_RESULT_TO_XML AS
BEGIN
DECLARE
XmlFic Utl_File.File_Type;
XmlTyp sys.dbms_xmlquery.ctxType;
XmlData CLOB;
Fin BOOLEAN := TRUE;
BEGIN
XmlTyp := sys.dbms_xmlquery.newcontext('SELECT * FROM ma_table ORDER un champ);
-- Spécifie l'encodage
sys.dbms_xmlquery.setencodingtag(XmlTyp, 'ISO-8859-1');
-- Créer des données au format XML à partir d'une requête :
XmlData := sys.dbms_xmlquery.getxml(XmlTyp);
sys.dbms_xmlquery.closecontext(XmlTyp);
-- Copie les données au format XML dans un fichier :
XmlFic := Utl_File.FOpen ('f:\dashboard\out', 'AGGTEST.xml', 'W');
WHILE FIN LOOP
Utl_File.Put (XmlFic, SUBSTR (XmlData, 1, 32767));
IF LENGTH (XmlData) > 32767 THEN
XmlData := SUBSTR (XmlData, 32768);
ELSE
FIN := FALSE;
END IF;
END LOOP;
Utl_File.FClose (XmlFic);
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE (SUBSTR (SQLERRM,1,255));
Utl_File.FClose (XmlFic);
END;
END AGG_RESULT_TO_XML; |
Partager