现在我写了存储过程,把表里面的数据导出到xml中,现在的格式是:
<?xml version="1.0" encoding="GBK" ?>
<PEOPLE>
<PERSON PERSONID="1">
<NAME>1</NAME>
<ADDRESS>1</ADDRESS>
<TEL>1</TEL>
<FAX>1</FAX>
<EMAIL>1</EMAIL>
</PERSON>
</PEOPLE>
但是我想得到的xml的格式是这样:
<?xml version="1.0" encoding="GBK" ?>
<PEOPLE>
<PERSON PERSONID="1">
<NAME DBSource="" tableSource="" fieldSource="" >1</NAME>
<ADDRESS DBSource="" tableSource="" fieldSource="" >1</ADDRESS>
<TEL DBSource="" tableSource="" fieldSource="" >1</TEL>
<FAX DBSource="" tableSource="" fieldSource="" >1</FAX>
<EMAIL DBSource="" tableSource="" fieldSource="" >1</EMAIL>
</PERSON>
</PEOPLE>
请问我该怎么处理好?
参考存储过程如下:
CREATE OR REPLACE PROCEDURE JSBDATA.PROC_TOXML(result in out nocopy clob,
filename in varchar2)is
xmlstr varchar2(32767);
line varchar2(2000);
fhandle utl_file.file_type;
begin
fhandle := utl_file.fopen('EXP_DIR', filename,'w');
xmlstr := dbms_lob.substr(result,32767);
loop exit when xmlstr is null;
line := substr(xmlstr,1, instr(xmlstr, chr(10)) -1);
dbms_output.put_line('|'|| line);
utl_file.put_line(fhandle, line);
xmlstr := substr(xmlstr, instr(xmlstr, chr(10)) +1);
end loop;
utl_file.fclose(fhandle);
end;
/
--------------------
CREATE OR REPLACE PROCEDURE PROC_USETABLE2XML /* (参数, 参数...) */
is
queryctx dbms_xmlquery.ctxType;
result clob;
begin
------1
queryctx := dbms_xmlquery.newContext('select * from people');--存放查询记录集的SQL
result := dbms_xmlquery.getXML(queryctx);
proc_toxml(result,'1.xml');
dbms_xmlquery.closeContext(queryctx);
end;
<?xml version="1.0" encoding="GBK" ?>
<PEOPLE>
<PERSON PERSONID="1">
<NAME>1</NAME>
<ADDRESS>1</ADDRESS>
<TEL>1</TEL>
<FAX>1</FAX>
<EMAIL>1</EMAIL>
</PERSON>
</PEOPLE>
但是我想得到的xml的格式是这样:
<?xml version="1.0" encoding="GBK" ?>
<PEOPLE>
<PERSON PERSONID="1">
<NAME DBSource="" tableSource="" fieldSource="" >1</NAME>
<ADDRESS DBSource="" tableSource="" fieldSource="" >1</ADDRESS>
<TEL DBSource="" tableSource="" fieldSource="" >1</TEL>
<FAX DBSource="" tableSource="" fieldSource="" >1</FAX>
<EMAIL DBSource="" tableSource="" fieldSource="" >1</EMAIL>
</PERSON>
</PEOPLE>
请问我该怎么处理好?
参考存储过程如下:
CREATE OR REPLACE PROCEDURE JSBDATA.PROC_TOXML(result in out nocopy clob,
filename in varchar2)is
xmlstr varchar2(32767);
line varchar2(2000);
fhandle utl_file.file_type;
begin
fhandle := utl_file.fopen('EXP_DIR', filename,'w');
xmlstr := dbms_lob.substr(result,32767);
loop exit when xmlstr is null;
line := substr(xmlstr,1, instr(xmlstr, chr(10)) -1);
dbms_output.put_line('|'|| line);
utl_file.put_line(fhandle, line);
xmlstr := substr(xmlstr, instr(xmlstr, chr(10)) +1);
end loop;
utl_file.fclose(fhandle);
end;
/
--------------------
CREATE OR REPLACE PROCEDURE PROC_USETABLE2XML /* (参数, 参数...) */
is
queryctx dbms_xmlquery.ctxType;
result clob;
begin
------1
queryctx := dbms_xmlquery.newContext('select * from people');--存放查询记录集的SQL
result := dbms_xmlquery.getXML(queryctx);
proc_toxml(result,'1.xml');
dbms_xmlquery.closeContext(queryctx);
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货