0defb3aa

Преобразование из XMLTYPE в табличную форму


Для преобразования данных типа XMLTYPE в обычный табличный вид можно использовать функции SQL и методы XMLTYPE, в первую очередь упоминавшуюся метод-функцию EXTRACT:

COLUMN xdoc FORMAT A80

SELECT ROWNUM, id, b.description.EXTRACT('/cover/author') xdoc

FROM books b;

Обратите внимание на возможность и способ обработки нескольких авторов в XML элементах <author>. 

Использование функции SQL EXTRACTVALUE, в свою очередь, оставляет возможность отбора не более одного элемента XML для формирования каждой строки результата SELECT, но зато безболезнено убирает обрамляющие значение элемента XML метки:

SELECT id, EXTRACTVALUE(b.description.EXTRACT('/cover/title'), '/title') xdoc

FROM books b;

То же самое можно записать проще, что уже демонстрировалось в начале статьи.



Содержание раздела