Espero por vuestro bien que a nadie se le haya ocurrido guardar un fichero xml con una serie de datos que vayas a necesitar en un blob... pero si a alguno de vuestros compañeros le ha poseido Satán y ha hecho tan atroz fechoría os dejo una forma de obtener dichos datos.
Supongamos que tenemos una tabla_del_demonio con un id y un campo_blob. Para el id 1816 dentro del campo blob guardas un fichero xml de este tipo:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<attributes xmlns="http://www.sat.an/attributes/1.0" xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:ns3="http://www.sat.an/attributes/trabajadores/1.0">
<trabajador>
<nombre>Daniel</nombre>
<apellido1>Garcia</apellido1>
<apellido2>Fernandez</apellido2>
<ns3:dni>123456789B</ns3:dni>
</specificData>
</attributes>
Para quedarnos con el valor del dni habría que hacer lo siguiente:
select extractvalue(X.XML, '/attributes/trabajador/ns3:dni', 'xmlns="http://www.sat.an/attributes/1.0" xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:ns3="http://www.sat.an/attributes/trabajadores/1.0"')
from (select XMLType(campo_blob,178) XML
from tabla_del_demonio
where id=1816) X;
No hay comentarios:
Publicar un comentario