例如,我使用XMLSERIALIZE将XML结果转换为文本。一些第三方工具不能使用db2xml数据类型。
create or replace function test_xml(p_CustomerID int)
returns XML
return
with Customer (CustomerID, CustomerType) as (values
(1, 'S')
, (2, 'A')
)
, SalesOrderHeader (CustomerID, SalesOrderID, Status) as (values
(1, 11, '5')
, (1, 12, '5')
, (1, 13, '5')
, (1, 14, '5')
, (2, 21, '6')
, (2, 22, '6')
, (2, 23, '6')
, (2, 24, '6')
)
SELECT
XMLELEMENT(NAME "Cust", XMLATTRIBUTES(Cust.CustomerID as "CustomerID", Cust.CustomerType as "CustomerType"), OrderHeader.ord)
as col
FROM Customer Cust,
(
select CustomerID
, XMLAGG(XMLELEMENT(NAME "OrderHeader", XMLATTRIBUTES(CustomerID AS "CustomerID", SalesOrderID AS "SalesOrderID", Status as "Status"))) ord
from SalesOrderHeader
group by CustomerID
) OrderHeader
WHERE Cust.CustomerID = OrderHeader.CustomerID
and Cust.CustomerID=p_CustomerID;
values xmlserialize(test_xml(1) as clob(1k));