【发布时间】:2020-06-22 17:32:24
【问题描述】:
我的 xml 数据类似于:
<Document>
<paymentsts>
<ref>abc-123</ref>
<TxSts>RJCT</TxSts>
<StsRsnInf>
<Rsn>
<Cd>FF02</Cd>
</Rsn>
<AddtlInf>SyntaxError</AddtlInf>
<AddtlInf>Error: Invalid Input Character</AddtlInf>
</StsRsnInf>
</paymentsts>
</Document>
我正在使用 XMLTABLE 来提取 SQL 查询中的信息,并且我正在努力从 AddtlInf 获取数据。因为该元素可以出现多次,我认为我可以使用 string-join 但这不起作用。我收到错误 PL/SQL: ORA-19109: RETURNING keyword expected。
重现的代码如下:
declare
v_xml constant xmltype := xmltype('<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<Document>
<paymentsts>
<ref>abc-123</ref>
<TxSts>RJCT</TxSts>
<StsRsnInf>
<Rsn>
<Cd>FF02</Cd>
</Rsn>
<AddtlInf>SyntaxError</AddtlInf>
<AddtlInf>Error: Invalid Input Character</AddtlInf>
</StsRsnInf>
</paymentsts>
</Document>'
);
l_info VARCHAR2(500);
begin
select errinfo
into l_info
from xmltable(
'Document/paymentsts/StsRsnInf'
passing v_xml
columns
errinfo varchar2(500) PATH 'string-join(AddtlInf, '','')'
);
dbms_output.put_line('(l_info = ' || l_info );
end;
我错过了什么?
【问题讨论】: