我想知道如何将表数据转换为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;
/
答案 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