Passing XML en Oracle
Publicado por Victor (20 intervenciones) el 07/03/2019 14:36:23
Buenos días,
Tengo este XML;
Necesito obtener los datos de la etiqueta codProceso, y para eso encontré esta forma;
(En mi BD oracle, creé una tabla dummy con el campo campoxml y guardé alli el xml de arriba)
El Result de esto es;
Es decir me concatena ambos campos 12+24=1224 cuando yo necesito diferenciarlo como registros diferentes aunque pertenezcan a un mismo nombre de campo o etiqueta.
Mi consulta es;
Como puedo obtener los campos por separados ya sea como registro?
ej:
o si no se puede como registro, la posibilidad de agregar un separador algo así?
donde # es el separador?
Desde ya gracias por la ayuda!
Saludos,
Tengo este XML;
1
2
3
4
5
6
7
8
9
10
11
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:getConsultaOnlineResponse xmlns:ns2="http://service.online.ness.seg.com/">
<return>
<codProceso>12</codProceso>
<codProceso>24</codProceso>
<fecha>20190307</fecha>
</return>
</ns2:getConsultaOnlineResponse>
</soap:Body>
</soap:Envelope>
Necesito obtener los datos de la etiqueta codProceso, y para eso encontré esta forma;
(En mi BD oracle, creé una tabla dummy con el campo campoxml y guardé alli el xml de arriba)
1
2
3
select xmlserialize(content XMLQuery('//return/codProceso/text()' passing
campoxml returning content) as varchar2(10)) codProceso
from dummy;
El Result de esto es;
1
2
3
CODPROCESO
----------
1224
Es decir me concatena ambos campos 12+24=1224 cuando yo necesito diferenciarlo como registros diferentes aunque pertenezcan a un mismo nombre de campo o etiqueta.
Mi consulta es;
Como puedo obtener los campos por separados ya sea como registro?
ej:
1
2
3
4
CODPROCESO
----------
12
24
o si no se puede como registro, la posibilidad de agregar un separador algo así?
1
2
3
CODPROCESO
----------
12#24
donde # es el separador?
Desde ya gracias por la ayuda!
Saludos,
Valora esta pregunta
0