powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / XMLQUERY для получения структуры node "Partition" - child nodes "Subpartitions"
3 сообщений из 3, страница 1 из 1
XMLQUERY для получения структуры node "Partition" - child nodes "Subpartitions"
    #39423558
CTUDEHT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! Прошу помочь в следующем:

Необходимо с помощью запроса XMLQUERY получить XML вида:

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<PART>part_0
   <SUBPART>subpart_1</SUBPART>
   <SUBPART>subpart_2</SUBPART>
   <SUBPART>subpart_3</SUBPART>
   <SUBPART>subpart_4</SUBPART>
   <SUBPART>subpart_5</SUBPART>
      
....
</PART>
<PART>part_1
   <SUBPART>subpart_1</SUBPART>
   <SUBPART>subpart_2</SUBPART>
   <SUBPART>subpart_3</SUBPART>
   <SUBPART>subpart_4</SUBPART>
   <SUBPART>subpart_5</SUBPART>
...
</PART>



Пытаюсь плясать от запроса:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
with t as (
select xmlquery(' for $i in fn:collection("oradb:/HR/SOURCE_TABLE")
return $i ' returning content) as ddl_xml from dual)
select xmlquery('
for $p in /ROW
for $s in /ROW
where $p/PART=$s/PART
order by $p/PART, $p/SUBPART
return  $p/PART|$s/SUBPART' passing t.ddl_xml returning content) from t;



Нужно правильно сформулировать return-клаузу. Воможно, что-то еще в XQuery.

Скрипт для создания и наполнения тестовой таблицы SOURCE_TABLE:

Код: plsql
1.
create table SOURCE_TABLE as select 'part_'||floor(level/10) as part, 'subpart_'||mod(level,10) as subpart from dual connect by level<=50;
...
Рейтинг: 0 / 0
XMLQUERY для получения структуры node "Partition" - child nodes "Subpartitions"
    #39423580
Lary Denis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CTUDEHT, раз вы пишете в оракловой ветке, не могу не предложить такое решение:

Код: plsql
1.
2.
3.
4.
select
  xmlagg(xmlelement(part, "PART", xmlagg(xmlforest(subpart)))) from source_table
group by part
order by part, subpart;



С order by аккуратнее.
...
Рейтинг: 0 / 0
XMLQUERY для получения структуры node "Partition" - child nodes "Subpartitions"
    #39423770
CTUDEHT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я привел таблицы в качестве источника для удобства воспроизведения кейса. В оригинале у меня на входе XML с метаданными таблицы, поэтому мне необходим именно XFLOWR.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / XMLQUERY для получения структуры node "Partition" - child nodes "Subpartitions"
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]