2015-12-15 31 views
8

Desidero sapere come convertire i dati della tabella in un file xml separato. Se ho bisogno di utilizzare concetti di file UTL ?. Di seguito è riportato il codice di esempio. qualcuno può aiutarmi a chiarire questo?Come convertire i dati della tabella di Oracle in un file xml separato utilizzando la procedura di memorizzazione

CREATE OR PROCEDURE PRC_INSDB_XML (Booking_date1 in date) 
as 

begin 

SELECT XMLElement("Employee", XMLForest(empno, ename, job, mgr, hiredate, sal, comm, deptno, gender)) AS "RESULT" FROM emp where Booking_date=Booking_date1 ; 

end PRC_INSDB_XML; 
/

risposta

7

È possibile generare XML utilizzando dbms_xmlgen.getxml() function.Find sotto collegamento per i particolari:

https://docs.oracle.com/cd/B10501_01/appdev.920/a96620/xdb12gen.htm#1025729

select dbms_xmlgen.getxml('select * from emp') as emp_xml 
from dual; 

Tuttavia per creare un XML sul disco avete bisogno del pacchetto UTL. Es.

DECLARE 
     F UTL_FILE.FILE_TYPE; 
     MYCLOB CLOB; 
    BEGIN 
     SELECT 
     DBMS_XMLGEN.GETXML(' 
      select deptno,dname,loc from emp 
     ') 
     INTO MYCLOB 
     FROM DUAL; 
     F := UTL_FILE.FOPEN(dest_path,'EMP.XML','w',32767); 
     UTL_FILE.PUT(F,MYCLOB); 
     UTL_FILE.FCLOSE(F); 
    END; 
+0

Grazie per l'aggiornamento. Ho bisogno di un risultato come file xml nel mio locale. –

+0

@BalaS vedere la risposta aggiornata. – smau

+0

Ancora una volta grazie per i tuoi aggiornamenti. Non ho i privilegi per creare directory. Se qualche altro modo per acquisire il file xml nella cartella. –

3

Se avete bisogno di sulla vostra macchina client quindi provare spooling in SQL * Plus

SET HEADING OFF 
SET PAGESIZE 0 
SET LONG 90000 
SET FEEDBACK OFF 
SET ECHO OFF 
SPOOL c:\downloads\file_name.xml 

select dbms_xmlgen.getxml('select * from emp') as emp_xml 
    from dual; 

SPOOL OFF