SQL:2003 и XML
Получение XML результатов при использовании операторов SQL
SQL: 2003 имеет пять операторов, XMLELEMENT, XMLFOREST, XMLGEN, XMLCONCAT и XMLAGG, которые при применении к содержимому базы данных SQL дают XML-результат.
Оператор XMLELEMENT
Оператор XMLELEMENT создает XML-элемент. Этот оператор может использоваться в операторе SELECT для помещения данных формата XML в базу данных SQL. Рассмотрим следующий пример:
SELECT с.LastName XMLELEMENT (NAME "City", c.City) AS "Result" FROM CUSTOMER С WHERE LastName="Abelson";
Возвращаемый результат:
LastName | Result |
Abelson | <City>Springfield</City> |
Оператор XMLFOREST
Оператор XMLFOREST создает дерево (forest) элементов из списка аргументов. Каждый аргумент оператора создает новый элемент. Ниже приведен пример использования такого оператора.
SELECT с. LastNartie XMLFOREST (с.City, с.AreaCode, с.Telephone) AS "Result" FROM CUSTOMER с WHERE LastName="Abelson" OR LastName="Bailey";
В результате вы получите следующую информацию:
LastName | Result |
---|---|
Abelson | <City>Springfield</City> <AreaCode>714</AreaCode> <Telephone>555-llll</ Telephone> |
Bailey | <City>Decatur</City> <AreaCode>714</AreaCode> <Telephone>555-llll</ Telephone> |
Оператор XMLGEN
Первый аргумент оператора XMLGEN – это шаблон, который содержит символы-заполнители для значений, которые будут добавлены позже. Символы-заполнители представлены в форме "{$name}". Последовательность аргументов задает значения и связанные с ними имена, которые характеризуют шаблон. Ниже приведен пример использования этого оператора.
SELECT с.LastName XMLGEN ('<CUSTOMER Name="{$LASTNAME}"> <City>{$CITY}</City> </CUSTOMERS, c.LastName AS Name, с City) AS "Result" FROM CUSTOMER с WHERE LastName="Abelson" OR LastName="Bailey";
Результат будет следующим:
LastName | Result |
---|---|
Abelson | <CUSTOMER Name="Abelson" <City>Springfield</City> </CUSTOMER> |
Bailey | <CUSTOMER Name="Bailey" <City>Decatur</City> </CUSTOMER> |