Как получить полную строку из основного тега XML в oracle
У меня есть некоторые типичные проблемы для анализа XML для значений.
пример xml:
<emp> <name>John</name> <id1>123</id1> <address><street>down town</street></address> </emp>
я пытаюсь разобрать этот xml, используя следующий запрос:
SELECT name,id1,address FROM (SELECT XMLTYPE ('<emp> <name>John</name> <id1>123</id1> <address><street>down town</street></address> </emp>') object_value FROM DUAL) t, XMLTABLE ( '/emp' PASSING t.object_value COLUMNS name varchar2(2000) PATH '/emp/name', id1 number PATH '/emp/id1', address clob PATH '/emp/address');
его возвращающийся выход:
имя id1 адрес
Джон 123 вниз по городу
иногда адрес будет приходить строкой, как указано выше, а также с xml-тегами. Я хотел бы вернуть оба значения, как показано ниже.
ожидаемый результат должен быть следующим:
имя id1 адрес
Джон 123 &л;ул>В городе&ЛТ;/ул&ГТ;
Как я могу получить это? Не могли бы вы пожалуйста помочь?
Что я уже пробовал:
<pre>SELECT name,id1,address FROM (SELECT XMLTYPE ('<emp> <name>John</name> <id1>123</id1> <address><street>down town</street></address> </emp>') object_value FROM DUAL) t, XMLTABLE ( '/emp' PASSING t.object_value COLUMNS name varchar2(2000) PATH '/emp/name', id1 number PATH '/emp/id1', address clob PATH '/emp/address');