问题描述
大家好,
我正在尝试使用各种现有函数生成一些XML,例如XMLELEMENT,XMLAGG,...
但是我似乎无法完全生成我需要的东西。
我需要实现的是:
因此,在GLEntry内部可以有多个GLEntry,在GLEntry内部可以有多个FinEntryLine,在PaymentTerm内部可以有多个paymentyline。
这是我到目前为止得到的:
使用以下代码:
我的问题是,支付条款元素重复为文件中存在的每个FinEntryLine。
我尝试了多个版本,使用不同的XMLAGG和XMLCONCAT,但找不到我需要的东西。
任何帮助和建议都将不胜感激。
谢谢,
aga
我正在尝试使用各种现有函数生成一些XML,例如XMLELEMENT,XMLAGG,...
但是我似乎无法完全生成我需要的东西。
我需要实现的是:
... ... ...XX ...
因此,在GLEntry内部可以有多个GLEntry,在GLEntry内部可以有多个FinEntryLine,在PaymentTerm内部可以有多个paymentyline。
这是我到目前为止得到的:
使用以下代码:
SELECT XMLSERIALIZE (
CONTENT XMLELEMENT (
"GLEntries",
XMLAGG (
XMLELEMENT (
"GLEntry",
xmlattributes (TO_CHAR (fac_num) AS "entry",
'E' AS "status"),
XMLCONCAT(XMLELEMENT ("FinEntryLine", xmlattributes(to_char(lfa_num) as "number")
)),
XMLELEMENT("PaymentTerms",
XMLELEMENT("PaymentTerm", xmlattributes(fac_num as "entry"))
))))
VERSION '1.0')
AS xmlserialize_doc
FROM fac,
lfa
WHERE lfa_fac_fk = fac_pk
and fac_pk = 365462;我的问题是,支付条款元素重复为文件中存在的每个FinEntryLine。
我尝试了多个版本,使用不同的XMLAGG和XMLCONCAT,但找不到我需要的东西。
任何帮助和建议都将不胜感激。
谢谢,
aga
专家解答
没有样本数据很难确定。
但是我相信你需要xmlag FinEntryLines。按条目分组 (fac_num):
但是我相信你需要xmlag FinEntryLines。按条目分组 (fac_num):
with rws as (
select '00049' fac_num, 1 lfa_num
from dual
union all
select '00049' fac_num, 2 lfa_num
from dual
)
SELECT XMLSERIALIZE (
CONTENT XMLELEMENT (
"GLEntries",
XMLELEMENT (
"GLEntry",
xmlattributes (
TO_CHAR (fac_num) AS "entry",
'E' AS "status"
),
XMLAGG (
XMLELEMENT (
"FinEntryLine",
xmlattributes(to_char(lfa_num) as "number")
)
),
XMLELEMENT ( "PaymentTerms",
XMLELEMENT (
"PaymentTerm",
xmlattributes(fac_num as "entry")
)
)
)
)
VERSION '1.0'
) AS xmlserialize_doc
FROM rws
group by fac_num;
XMLSERIALIZE_DOC
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




