powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Подскажите пожалуйста как получить трансформацию
5 сообщений из 5, страница 1 из 1
Подскажите пожалуйста как получить трансформацию
    #40034181
AdamAry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите пожалуйста как получить трансформацию?:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Имеется 
xmltype('
<root>
  <row>
    <col>v11</col>
    <col>v12</col>
    <col>v13</col>
    <col>v14</col>
  </row>
  <row>
    <col>v21</col>
    <col>v22</col>
    <col>v23</col>
    <col>v24</col>
  </row>
</root>')


Необходимо:

а) Получить выборку

Код: plsql
1.
2.
3.
4.
C1   C2   C3   C4
---- ---- ---- ----
v11  v12  v13  v14
v21  v22  v23  v24



Условия: количество узлов row может варьироваться, col всегда статично = 4 шт в пределах row

b) Получить в виде результата колонку с типом xmltype SQL запроса со следующей структурой:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<root>
   <data row="1" col="1">v11</data>
   <data row="1" col="2">v12</data>
   <data row="1" col="3">v13</data>
   <data row="1" col="4">v14</data>
   <data row="2" col="1">v21</data>
   <data row="2" col="2">v22</data>
   <data row="2" col="3">v23</data>
   <data row="2" col="4">v24</data>
</root>




Реализовать данный запрос не используя XSLT трансформацию.
Условия: количество узлов row и col может варьироваться (прим. это более сложный пример, можно вернуть условие что количество col всегда статично = 4 шт в пределах row)

c) Получить в виде результата колонку с типом xmltype SQL запроса со следующей структурой:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<root>
   <data row="1" col="1">v11</data>
   <data row="1" col="2">v12</data>
   <data row="1" col="3">v13</data>
   <data row="1" col="4">v14</data>
   <data row="2" col="1">v21</data>
   <data row="2" col="2">v22</data>
   <data row="2" col="3">v23</data>
   <data row="2" col="4">v24</data>
</root>



Реализовать данный запрос используя XSLT трансформацию.
Условия: количество узлов row и col может варьироваться
...
Рейтинг: 0 / 0
Подскажите пожалуйста как получить трансформацию
    #40034185
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AdamAry
Условия:
Недостаточны. Не указано, во сколько оценивается скудоумие при решении лаб.
...
Рейтинг: 0 / 0
Подскажите пожалуйста как получить трансформацию
    #40034227
AdamAry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic, авторНедостаточны.
Использую Oracle 10.2.
...
Рейтинг: 0 / 0
Подскажите пожалуйста как получить трансформацию
    #40034255
Vlad074
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решал недавно с нулевым уровнем xml. Поиском точно можно найти на этом форуме или варианты ответа, или куда копать. Самое сложное было в с) нумеровать row.
...
Рейтинг: 0 / 0
Подскажите пожалуйста как получить трансформацию
    #40034733
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AdamAry

Использую Oracle 10.2.


От скуки чтобы вспомнить архаику:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
with sample as (
                select xmltype('
<root>
  <row>
    <col>v11</col>
    <col>v12</col>
    <col>v13</col>
    <col>v14</col>
  </row>
  <row>
    <col>v21</col>
    <col>v22</col>
    <col>v23</col>
    <col>v24</col>
  </row>
</root>') xmldoc from dual
               )
select  xmlelement(
                   "root",
                   xmlquery(
                            '
                             for $r at $ri in /root/row
                               for $c at $ci in $r/col
                                 return <data row="{$ri}" col="{$ci}">{$c}</data>
                            '
                            passing xmldoc
                            returning content
                           )
                  ).extract('/') xmldoc
  from  sample
/

XMLDOC
----------------------------------------------
<root>
  <data row="1" col="1">
    <col>v11</col>
  </data>
  <data row="1" col="2">
    <col>v12</col>
  </data>
  <data row="1" col="3">
    <col>v13</col>
  </data>
  <data row="1" col="4">
    <col>v14</col>
  </data>
  <data row="2" col="1">
    <col>v21</col>
  </data>
  <data row="2" col="2">
    <col>v22</col>
  </data>
  <data row="2" col="3">
    <col>v23</col>
  </data>
  <data row="2" col="4">
    <col>v24</col>
  </data>
</root>


SQL> 



Остальное допилишь.

SY.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Подскажите пожалуйста как получить трансформацию
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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