SQL:2003 и XML
Оператор XMLCONCAT
Оператор XMLCONCAT обеспечивает альтернативный способ создания дерева элементов. Это осуществляется путем связывания его XML-аргументов. Например:
SELECT с.LastName XMLCONCAT ( XMLELEMENT (NAME "first", c.FirstName, XMLELEMENT (NAME "last", c.LastName) ) AS "Result" FROM CUSTOMER с;
В результате получится следующее:
LastName | Result |
---|---|
Abelson | <first>Abe</first> <last>Abelson</last> |
Bailey | <first>Bill</first> <last>Bailey</last> |
Оператор XMLAGG
XMLAGG – это агрегирующая функция, которая создает единственный XML-документ из других XML-документов или их отдельных фрагментов. Агрегирование содержит дерево элементов. Рассмотрим это на примере:
SELECT XMLELEMENT (NAME "City", XMLATTRIBUTES (с.City AS "name"), XMLLAGG (XMLELEMENT (NAME "last" c.LastNa,e) ) ) AS "CityList" FROM CUSTOMER С GROUP BY City;
При обработке таблицы CUSTOMER этот запрос выведет следующее:
<City name="Decatur"> <last>Bailey</last> </City> <City name= "Philo"> <last>Stetson</last> <last>Stetson</last> <last>Wood</last> </City <City name="Springfield"> <last>Abelson</last> </City>
Преобразование не предопределенных типов данных в XML
В SQL:2003 к не предопределенным типам данных относятся домены, отдельные UDT-типы, строки, массивы и мультимножества. Для преобразования каждого из этих XML-типов данных используется соответствующий XML-код. Примеры преобразования таких типов данных рассматриваются в следующих разделах.