Страницы

Поиск по вопросам

пятница, 12 апреля 2019 г.

Как разобрать XML в Oracle SQL?

В таблице есть столбец clob, в котором хранится текст XML такого вида:

БРЕСТСКАЯ Город КОБРИН Улица СУВОРОВА 33 6 225306

Хочется разобрать это силами SQL, получив в результате склейку значений. В данном случае хочу получить на выходе
БРЕСТСКАЯ КОБРИН УлицаСУВОРОВА 33 6
Подскажите, как можно добиться такого результата?


Ответ

with t as (select '

БРЕСТСКАЯ Город КОБРИН Улица СУВОРОВА 33 6 225306
' as xml_ from dual) SELECT extractvalue(s.column_value, '/*/Element[@type=''district'']')||' '|| extractvalue(s.column_value, '/*/Element[@type=''city'']')||' '|| 'Улица '||extractvalue(s.column_value, '/*/Element[@type=''street'']')||' '|| extractvalue(s.column_value, '/*/Element[@type=''house'']')||' '|| extractvalue(s.column_value, '/*/Element[@type=''flat'']') as VAL FROM t, table(xmlsequence(EXTRACT(XMLTYPE(t.xml_), '/Address'))) s

Комментариев нет:

Отправить комментарий