oracle对象不是ref,ORA-22806:生成XML输出时不是对象或REF:错误

我试图创建一个XML输出文件,通过创建一个过程并使用该过程进行并发请求。请找到下面的软件包程序代码。ORA-22806:生成XML输出时不是对象或REF:错误

并发程序误码出与

“原因:FDPSTP失败,原因是ORA-19202:发生在XML处理ORA-22806错误:不是一个对象或REF”。

CREATE OR REPLACE PACKAGE BODY xx_outbound_xml1

AS

PROCEDURE xx_insert_outbound_xml1 (

errbuff OUT VARCHAR2,

errcode OUT NUMBER

)

IS

ln_ctx DBMS_XMLGEN.ctxhandle;

lc_xml_clob CLOB;

BEGIN

ln_ctx :=

DBMS_XMLGEN.newcontext

( 'SELECT XMLELEMENT("litleRequest",

XMLATTRIBUTES('

|| 'to_char(sysdate,''DDMMYYYHH24MI:SS'')'

|| ' AS "Id" ),

(SELECT

XMLAGG(

XMLELEMENT(

evalname(Decode((select order_type FROM my_orders WHERE order_id = mo.order_id),''CO'',''"Credit"'',''"Sale"'')).getstringval(),

XMLFOREST (

mo.order_id AS "orderId",

mo.order_type as "orderType"

)

)

)

FROM my_orders mo

)

) xml

FROM dual'

);

DBMS_XMLGEN.setrowsettag (ln_ctx, NULL);

DBMS_XMLGEN.setrowtag (ln_ctx, NULL);

--DBMS_XMLGEN.setNullHandling(ln_ctx,dbms_xmlgen.EMPTY_TAG);

lc_xml_clob := DBMS_XMLGEN.getxml (ln_ctx);

lc_xml_clob := REPLACE (lc_xml_clob, '', '');

lc_xml_clob := REPLACE (lc_xml_clob, '', '');

DBMS_XSLPROCESSOR.clob2file (lc_xml_clob,

'INBOUNDFOLDER',

'output.xml',

0

);

DBMS_LOB.freetemporary (lc_xml_clob);

END xx_insert_outbound_xml1;

END xx_outbound_xml1;

如果订单类型是CO然后标记应该是信用卡或如果ORDER_TYPE是SO然后标记应该是销售。

我的输出应该是这样的:

mZ5b0.jpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值