создание XML без использования пакетов

 
0
 
Oracle
ava
Paradox | 08.12.2005, 12:21
надоело мне как то создавать XML руками
делать ноды, привязывать их друг к дружке
вот могу поделится гораздо более производительным, легким и наглядным примерчиком
для тех кому интересно..


SELECT
     xmlelement("departments",
         xmlagg(
             xmlelement("department",
                 xmlattributes(d.department_id AS "department_id"),
                 xmlelement("department_name",d.department_name)
             )
        )
     ).getclobval
FROM departmets d

--xmlagg если есть желание вставить group by
Comments (3)
ava
LSD | 08.12.2005, 22:39 #
Paradox можешь поподробней расписать свой способ. Что имеем на входе, какая таблица, данные. И какой XML получаем на выходе, можно как нибудь его варьировать.
ava
Paradox | 09.12.2005, 09:44 #
xmlelement - создает тег (грубо говоря)
xmlagg - формирует вывод внутри тегов сверху, то есть например в примере
без использования такой ф-ии получится XML в каждой строке которого будет корневой тег departments, столько раз сколько строк в табличке
при использовании такой ф-ии тег departments будет 1 раз, а вложенные столько, сколько строк в табличке
xmlattributes - создает атрибут и присваивает ему значение
советую поэксперементировать

на личном опыте
построить XML с помощью xmldom и курсоров по табличке около 15 секунд
выполнение запроса в примере почти эквивалетно select * по времени
могу точные времена привести, но попозже...

все это нарыд в документации
также есть возможность подсунуть туды xsl и сделать все необходимые вещи всего одним (!!!) запросом

2LSD табличка стандартная из демо данных
можешь любую подсовывать - значения не имеет особого
никаких ограничений на структуру данных таблицы я не нашел
ava
LSD | 09.12.2005, 10:38 #
Я просто хотел это в FAQ засунуть, вот и просил поподробней рассказать.
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
  Paradox ava  LSD
advanced
Submit