如何使用存储过程将oracle表数据转换为单独的xml文件

时间:2015-12-15 11:06:38

标签: plsql oracle11g

我想知道如何将表数据转换为xml单独的文件。我是否需要使用UTL文件概念?下面是示例代码。任何人都可以帮我澄清一下吗?

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;
/

2 个答案:

答案 0 :(得分:6)

您可以使用dbms_xmlgen.getxml()函数生成XML。有关详细信息,请参阅以下链接:

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;

但是要在磁盘上创建XML,您需要使用UTL包。 例如

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; 

答案 1 :(得分:3)

如果您在客户端计算机上需要它,请尝试在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