Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / парсинг xml через ыйд / 6 сообщений из 6, страница 1 из 1
24.03.2018, 17:27
    #39620004
imeriks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
парсинг xml через ыйд
Добрый день.

Помогите пожалуйста с парсингом простого xml выражения:

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>
)

Нужно получить выборку вида:

C1 C2 C3 C4
---- ---- ---- ----
v11 v12 v13 v14
v21 v22 v23 v24

У меня пока получается только вот так:

select a.*
from
(
select extractvalue(column_value, '/*') as col
from table(xmlsequence(xmltype('<?xml version = "1.0"?>
<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>').extract('/root/row/col')))
) a

А таким запросом выходит все наоборот - 1 колонка и 8 строк
...
Рейтинг: 0 / 0
24.03.2018, 20:11
    #39620033
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
парсинг xml через ыйд
Код: 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.
with t 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  x.*
  from  t,
        xmltable(
                 '/root/row'
                 passing xmldoc
                 columns
                   c1 varchar2(3) path '/row/col[1]',
                   c2 varchar2(3) path '/row/col[2]',
                   c3 varchar2(3) path '/row/col[3]',
                   c4 varchar2(3) path '/row/col[4]'
                ) x
/

C1  C2  C3  C4
--- --- --- ---
v11 v12 v13 v14
v21 v22 v23 v24

SQL> 



SY.
...
Рейтинг: 0 / 0
24.03.2018, 23:48
    #39620049
imeriks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
парсинг xml через ыйд
Черт, как только я не пытался сегодня это сделать)
Спасибо Вам большое!
...
Рейтинг: 0 / 0
24.03.2018, 23:50
    #39620050
imeriks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
парсинг xml через ыйд
SY[src oracle]

xmltable(
'/root/row'
passing xmldoc
columns
c1 varchar2(3) path '/row/col[1]',
c2 varchar2(3) path '/row/col[2]',
c3 varchar2(3) path '/row/col[3]',
c4 varchar2(3) path '/row/col[4]'
) x


А можете вкратце объяснить что происходит внутри xmltable и как это работает, хочется понять.
Заранее спасибо.
...
Рейтинг: 0 / 0
25.03.2018, 09:28
    #39620074
dmdmdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
парсинг xml через ыйд
...
Рейтинг: 0 / 0
25.03.2018, 16:17
    #39620154
imeriks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
парсинг xml через ыйд
dmdmdm,

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


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