Мне нужно извлечь данные BATCH_ID
из таблицы FND_SOA_BODY_PIECE
и ТЕЛА Column (тип данных: CLOB), который имеет данные XML в немИзвлечение данных из XML (типа CLOB)
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<tns1:InputParameters xmlns:tns1="http://xmlns.oracle.com/apps/gl/soaprovider/plsql/geas_gl_journal_pkg/geas_get_gl_data/">
<tns1:P_BATCH_TBL>
<tns1:P_BATCH_TBL_ITEM>
<tns1:BATCH_ID>85380</tns1:BATCH_ID>
</tns1:P_BATCH_TBL_ITEM>
<tns1:P_BATCH_TBL_ITEM>
<tns1:BATCH_ID>85345</tns1:BATCH_ID>
</tns1:P_BATCH_TBL_ITEM>
<tns1:P_BATCH_TBL_ITEM>
<tns1:BATCH_ID>85364</tns1:BATCH_ID>
</tns1:P_BATCH_TBL_ITEM>
<tns1:P_BATCH_TBL_ITEM>
<tns1:BATCH_ID>85356</tns1:BATCH_ID>
</tns1:P_BATCH_TBL_ITEM>
<tns1:P_BATCH_TBL_ITEM>
<tns1:BATCH_ID>85374</tns1:BATCH_ID>
</tns1:P_BATCH_TBL_ITEM>
<tns1:P_BATCH_TBL_ITEM>
<tns1:BATCH_ID>85358</tns1:BATCH_ID>
</tns1:P_BATCH_TBL_ITEM>
</tns1:P_BATCH_TBL>
</tns1:InputParameters>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Я попытался это ниже, но это просто дал мне нулевые значения
SELECT xmltype(fsa.body).EXTRACT('/Envelope/Body/InputParameters/P_BATCH_TBL/P_BATCH_TBL_ITEM/BATCH_ID').getStringVal() FROM fnd_soa_body_piece;
Не мог бы кто-нибудь помочь в этом?
Спасибо за пост! ! 1. Он работает только в том случае, если у меня нет первой строки xml ' Xml version = '1.0' encoding = 'UTF-8'?>' В данных xml. Как мне это обработать? и во-вторых, это возвращает значение в формате xml с тегами batch_id. Как я могу просто получить данные в одиночку? –
Вот что выглядит результат Пример: ' 85380 tns1: BATCH_ID > 85345 tns1: BATCH_ID> ' –
см. обновление в ответ. У меня нет проблем с инструкцией по обработке XML. – OldProgrammer