В настоящее время я использую функцию Microsoft FOR XML PATH для извлечения данных из MS SQL Server в формате XML. Мне действительно нравится эта функция, но мне всегда неудобно использовать функции, специфичные для поставщика.
У кого-нибудь из других крупных поставщиков баз данных есть что-то подобное?
Редактировать
Позвольте мне быть более точным с типом функций, которые я ищу
В MS SQL вы можете использовать этот запрос
SELECT so.id AS '@Id',
so.Code AS '@Code',
cu.Code AS 'Customer/@Code',
cu.Name AS 'Customer/@Name',
(SELECT Item_Num AS '@Item',
pa.Code AS '@PartCode'
FROM tblSalesItem si
LEFT JOIN tblPart pa ON pa.Id = si.Part_Id
WHERE si.SalesOrder_ID = so.Id
FOR XML PATH('SalesItem') , type)
FROM tblSalesOrder so
JOIN tblCustomer cu ON so.customer_id = cu.ID
FOR XML PATH('SalesOrder'), ROOT('SalesOrders')
для генерации этого XML
<SalesOrders>
<SalesOrder Id="13" Code="C1002 ">
<Customer Code="ROBERTS " Name="Roberts Equipment Inc." />
<SalesItem Item="1" PartCode="FP-0001" />
<SalesItem Item="2" PartCode="FP-0003" />
</SalesOrder>
<SalesOrder Id="15" Code="C1004 ">
<Customer Code="EXBEL-LIFTS" Name="Exbel Lifts Inc." />
<SalesItem Item="1" />
</SalesOrder>
</SalesOrders>
Я могу контролировать использование элементов и атрибутов для каждого столбца. Я могу создавать атрибуты элементов для группировки связанных столбцов вместе. Я могу использовать подзапросы для генерации вложенных элементов. Вы даже можете использовать функции, которые возвращают XML, для генерации деревьев произвольной глубины.