Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Парсинг XML методами xmltype  [new]
antongoolin
Member

Откуда:
Сообщений: 1
Добрый день !

Не могли бы вы дать мне консультацию по разбору XML. Тема неоднократно обсуждалась, но моя проблема в том, что я не могу вытащить значение одной переменной среди множества переменныз в теге.
В общем виде это выглядит так:

<?xml version=”1.0” encoding=”UTF-8”?><?Siebel-Property-Set EscapeNames=”true”?><ListOfPubPersonRq>
><PubPersonRq
ProcessInstanceId=”1a1a1a1a1a”
><ListOfListOfSwiPersonPublishIO
><ListOfSwiPersonPublishIO
><LisrtOfContact
><Contact
BirthPlace=”Moscow”
CriminalRecordFlag=””

PartyUId=”111111111”
….

Для получения значения PartyUId я пользуюсь селектом:

Select XMLType (tablename.fieldname).extract(‘//ListOfPubPersonRq/ PubPersonRq/ ListOfListOfSwiPersonPublishIO/ ListOfSwiPersonPublishIO/ LisrtOfContact/ Contact/@ PartyUId’).getStringVal() PUID
From tablename
Where point_name=’Onl.Person.Pub’


И получаю ошибку ora-06502 pl/sql ошибка числа или значения.

Подскажите мне, как справиться с этой ошибкой или вытащить значение переменной иным образом ?
21 янв 14, 16:21    [15447770]     Ответить | Цитировать Сообщить модератору
 Re: Парсинг XML методами xmltype  [new]
AntonG
Member

Откуда: Иркутск
Сообщений: 38
with t as (select 
'<?xml version="1.0" encoding="UTF-8"?><?Siebel-Property-Set EscapeNames=”true”?>
<ListOfPubPersonRq>
<PubPersonRq ProcessInstanceId="1a1a1a1a1a">
<ListOfListOfSwiPersonPublishIO>
<ListOfSwiPersonPublishIO>
<LisrtOfContact>
<Contact
BirthPlace="Moscow"
CriminalRecordFlag=""
PartyUId="111111111"
/>
</LisrtOfContact>
</ListOfSwiPersonPublishIO>
</ListOfListOfSwiPersonPublishIO>
</PubPersonRq>
</ListOfPubPersonRq>' as field from dual)

Select extract(xmltype(field),'//ListOfPubPersonRq/PubPersonRq/ListOfListOfSwiPersonPublishIO/ListOfSwiPersonPublishIO/LisrtOfContact/Contact/@PartyUId').getStringVal() PUID
From t
22 янв 14, 12:00    [15451394]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить