oracle输出xml文件格式,在oracle中通过字段信息生成xml文件

一般地,在开发xmlp的时候,我们要先用report builder制作rdf模板,然后上传rdf到客户化应用下的reports文件夹下,通过并发请求,输出xml数据,然后保存成xml文件,或者直接将请求输出的out文件改后缀为xml,同样得到输出数据的xml文件,接着通过加载xml数据制作rtf模拟,定义数据和模板,再次处理并发请求,以求得到我们想要输出格式的报表。(其中的详细过程就不再啰嗦了,想必都已经很熟了)

但是如果我们的开发环境中没办法上传rdf模板的时候,我们就要用其他的办法输出得到xml文件了,这里是介绍了一种使用plsql通过字段信息生成xml文件的方法:

dbms_xmlgen这个程序包是关键,有兴趣的可以去了解下,它可以根据一个游标输出一个CLOB格式的XML文本,下面是参考程序:

PROCEDURE xml_print(errbuf  OUT VARCHAR2,

retcode OUT NUMBER) IS

ctx      dbms_xmlgen.ctxhandle;

c_result CLOB;

xmltext  VARCHAR2(5000);

v_source ref_cursor;

line     VARCHAR2(200);

TYPE     ref_cursor IS REF CURSOR;

BEGIN

--定义数据,数据集必须为游标变量

OPEN v_source FOR

SELECT 1,

2,

CURSOR (SELECT 3,

4

FROM dual

WHERE 1 = 1

UNION ALL

SELECT 5,

6

FROM dual

WHERE 1 = 1)

FROM dual

WHERE 1 = 1;

--定义XML CLOB文件

ctx := dbms_xmlgen.newcontext(v_source);

--设置XML文件标签

dbms_xmlgen.setrowsettag(ctx,

'HEADER');

dbms_xmlgen.setrowtag(ctx,

'LINE');

-- generate the CLOB as a result.

c_result := dbms_xmlgen.getxml(ctx);

/* --直接输出clob

dbms_output.put_line(c_result);*/

--以文本形式输出XML文件

xmltext := substr(c_result);

LOOP

EXIT WHEN xmltext IS NULL;

line := substr(xmltext,

1,

instr(xmltext,

chr(10)) - 1);

fnd_file.put(fnd_file.output,

line);

xmltext := substr(xmltext,

instr(xmltext,

chr(10)) + 1);

END LOOP;

dbms_xmlgen.closecontext(ctx);

CLOSE v_source;

END xml_print;

上面的输出格式等自己可以控制,更多的方法可以查看dbms_xmlgen程序包

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值