Результаты SQL-запроса в формате XML
Результаты SQL-запроса в формате XML
v:1.0 26.12.2010
Петрелевич Сергей
Часто результаты sql-запроса надо представить в формате XML. Для этого в Oracle есть несколько средств. Рассмотрим одно из них.
Данные будем брать из этой таблицы
create table tXML ( Id number, Name varchar2(100), constraint PK_tXML primary key (Id) ); insert into tXML(Id,Name) values(1,'Name1'); insert into tXML(Id,Name) values(2,'Name2'); insert into tXML(Id,Name) values(3,'Name3'); insert into tXML(Id,Name) values(4,'Name4'); insert into tXML(Id,Name) values(5,'Name5'); insert into tXML(Id,Name) values(6,'Name6'); insert into tXML(Id,Name) values(7,'Name7'); insert into tXML(Id,Name) values(8,'Name8'); insert into tXML(Id,Name) values(9,'Name9'); insert into tXML(Id,Name) values(10,'Name10');
select xmlelement("document", xmlattributes('testId' as "DocumentID"), xmlagg( xmlelement("row", xmlforest(t.Id "Id", t.Name "Name")) ) ) as XMLresult from tXML t
<document DocumentID="testId"> <row> <Id>1</Id> <Name>Name1</Name> </row> <row> <Id>2</Id> <Name>Name2</Name> </row> <row> <Id>3</Id> <Name>Name3</Name> </row> <row> <Id>4</Id> <Name>Name4</Name> </row> <row><Id>5</Id> <Name>Name5</Name> </row> <row> <Id>6</Id> <Name>Name6</Name> </row> <row> <Id>7</Id> <Name>Name7</Name> </row> <row> <Id>8</Id> <Name>Name8</Name> </row> <row> <Id>9</Id> <Name>Name9</Name> </row> <row> <Id>10</Id> <Name>Name10</Name> </row> </document>
Дам краткие пояснения по запросу.
XMLforest преобразует свои параметры в формат XML, полученные кусочки объединяет в итоговый XML-фрагмент.
XMLelement преобразует полученные параметры в XMLType.
XMLagg собирает полученные фрагменты XML в итоговый XML-документ.
XMLattributes добавляет атрибут в XML-элементу.
Все довольно-таки просто. Для формирования XML в Oracle есть все необходимое.
Внимание.
Комментировать могут только зарегистрированные пользователи.
Возможно использование следующих HTML тегов: <a>, <b>, <i>, <br>.