UTNianos

Versión completa: [CONSULTA] [BASE DE DATOS] Uso de datos xml en Oracle
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola, estoy trabajando con datos tipo xml en una base oracle. Necesito extraer parte del xml, por ejemplo desde el nodo xml_formularioIngreso, todo su contenido. Y no estoy pudiendo. ¿alguien sabe? o tiene para recomedar algun foro en español que trate el tema? Gracias

xml ejemplo:
prm_xml := xmltype (
'<params>
<request>
<prm_cAccion>grabar</prm_cAccion>
<prm_cEtapaActual>preingreso</prm_cEtapaActual>
<prm_dataSource>xgenJNDI</prm_dataSource>
<prm_nEvento>126</prm_nEvento>
<xml_formularioIngreso>
<ID_PACIENTE>206329</ID_PACIENTE>
<contactoApYNom>aaa</contactoApYNom>
<contactoEmail>aaa@gmail.com</contactoEmail>
<contactoTelefono>1234512</contactoTelefono>
<programaEspecial>PVP</programaEspecial>
<fechaEgreso>13/01/2018</fechaEgreso>
<pSolicitud>0</pSolicitud>
</xml_formularioIngreso>
</request>
<evento>
<fEtapa>1</fEtapa>
<pEvento>126</pEvento>
<pSecuencia>1</pSecuencia>
<cUsuario>mvico</cUsuario>
<fUsuario>1333</fUsuario>
</evento>
</params>'
);

select value(x)
into salida
from TABLE (xmlsequence(extract(prm_xml, '/params/xml_formularioIngreso/*'))) x;

dbms_output.put_line('salida contiene : '||salida ) ;
----
Esto me da error ORA-00932

Gracias por cualquier aporte!
Hola

(16-09-2018 20:36)Jesi25 escribió: [ -> ]Estoy trabajando con datos tipo xml en una base oracle. Necesito extraer parte del xml, por ejemplo desde el nodo xml_formularioIngreso, todo su contenido. Y no estoy pudiendo. ¿alguien sabe?

¿Intentaste buscar el error por Internet? No entiendo mucho de XML así que me puedo estar equivocando, pero al parecer no estás utilizando correctamente la función EXTRACT, sino que en su defecto deberías usar EXTRACTVALUE. Mirá estas páginas de ayuda: Extract xml value from XML clob field; EXTRACTVALUE and datatype errors.

(16-09-2018 20:36)Jesi25 escribió: [ -> ]¿o tiene para recomedar algún foro en español que trate el tema?

Si nadie puede ayudarte acá podés preguntar en stackoverflow (español) donde se especializan en este tipo de consultas.

Saludos y buena suerte.
Hola, si lo busque y como me canse de buscar, pregunto jaja. El extractvalue, te da el dato dentro del nodo, ejemplo <numero>55<numero/>, te devuelve 55. Se supone que el extract te devuelve la parte del xml que queres, como si fuese un substring. Pero bueno sigo buscando. Gracias igual! miro el foro que pasaste.
Jesi25

Sacar todos de uno no te sabría decir, pero de a uno se puede

select EXTRACTVALUE (prm_xml, 'params/request/prm_cAccion[1]')
into salida
from dual;
URLs de referencia