【发布时间】:2020-05-18 23:39:42
【问题描述】:
我有以下类型的树数据:1 个主题、2 个护照、2 个地址,这是一个实体。 如何使用嵌套的 xml 标签序列化为 xml 树数据?数据类型:
当我使用 XMLAGG 在 clob 中构建 xml 时,我得到了这样的带有重复标签的结构 示例:
<xml>
<person>
<title></title>
<document1></document1>
<document2></document2>
<adress1></adress1>
<adress2></adress2>
<adress1></adress1>
<phone1></phone1>
<phone2></phone2>
<phone3></phone3>
<phone1></phone1>
<phone2></phone2>
<phone3></phone3>
</person>
</xml>
这是我在 CLOB 中构建 XML 的查询:
---XMLPERSOM
SELECT XMLELEMENT ("Person",
XMLELEMENT ("ReferenceCode", SBS.ReferenceCode),
XMLELEMENT ("LastName", SBS.LastName),
XMLELEMENT ("FirstName", SBS.FirstName),
XMLELEMENT ("MiddleName", SBS.MiddleName),
XMLELEMENT ("BirthDate", SBS.BirthDate),
XMLELEMENT ("BirthPlace", SBS.BirthPlace),
XMLELEMENT ("sourceCode", SBS.sourceCode),
XMLELEMENT ("GroupCode", SBS.GroupCode),
--XMLDOCUMENTS
XMLELEMENT ("Documents",
XMLAGG(
XMLELEMENT ("Document",
XMLELEMENT ("Type", DCS.Type),
XMLELEMENT ("Series", DCS.Series),
XMLELEMENT ("Number", DCS.NumberID),
XMLELEMENT ("IssueDate", DCS.IssueDate),
XMLELEMENT ("IssueAuthority", DCS.IssueAuthority)))),
XMLELEMENT ("Addresses",
XMLAGG(
XMLELEMENT ("Address",
XMLELEMENT ("Type", ADDS.Type),
XMLELEMENT ("Location", ADDS.Location),
XMLELEMENT ("Street", ADDS.Street),
XMLELEMENT ("PostalCode", ADDS.PostalCode),
XMLELEMENT ("Country", ADDS.RU),
XMLELEMENT ("Region", ADDS.Region)))),
)
FROM SUBJECT_SEGMENT SBS
LEFT JOIN DOCUMENT_SEGMENT DCS ON SBS.ID = DCS.SUBJECT_ID
LEFT JOIN ADDRESS_SEGMENT ADDS ON SBS.ID = ADDS.SUBJECT_ID
GROUP BY SBS.ReferenceCode,
SBS.LastName,
SBS.FirstName,
SBS.MiddleName,
SBS.BirthDate,
SBS.BirthPlace,
SBS.sourceCode,
SBS.GroupCode
因此,我有重复的标签或重复的 clob xml。我需要一个 clob 并且没有重复的标签。 感谢帮助!
【问题讨论】: