Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

leer un xml desde pl-sql

Estas en el tema de leer un xml desde pl-sql en el foro de Oracle en Foros del Web. Buenos días, desde un pl estoy llamando a un web-service que me devuelve información de un empleado en formato xml. Me gustaría poder leer ese ...
  #1 (permalink)  
Antiguo 18/06/2008, 04:05
 
Fecha de Ingreso: junio-2008
Mensajes: 5
Antigüedad: 12 años, 5 meses
Puntos: 0
leer un xml desde pl-sql

Buenos días,
desde un pl estoy llamando a un web-service que me devuelve información de un empleado en formato xml. Me gustaría poder leer ese xml para localizar la direccion, el nif etc.
¿Alguien me podría ayudar?

Muchas gracias de antemano.
  #2 (permalink)  
Antiguo 18/06/2008, 05:12
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 13 años
Puntos: 85
Respuesta: leer un xml desde pl-sql

Hola,

Te dejo un link a la documentacion sobre XML en PL/SQL, en particular el paquete DBMS_XMLDOM http://download.oracle.com/docs/cd/B...s.htm#i1034250

Tienes un buen ejemplo en el apartado Example 11-1 Creating and Manipulating a DOM Document

Saludos
  #3 (permalink)  
Antiguo 18/06/2008, 06:35
 
Fecha de Ingreso: junio-2008
Mensajes: 5
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: leer un xml desde pl-sql

Gracias Matanga.

Es un buen ejemplo aunque creo que ese paquete de oracle no está disponible para oracle 9i porque me está dando error.
  #4 (permalink)  
Antiguo 18/06/2008, 10:09
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 13 años
Puntos: 85
Respuesta: leer un xml desde pl-sql

Hola,

Si existe el paquete en 9i http://download-west.oracle.com/docs...2/d_xmldo5.htm

Pero no viene instalado por defecto, hay que ejecutar alguno de los script de instalacion de Oracle, generalmente situados en ORACLE_HOME/rdbms/admin, el problema es que no me acuerdo cual es. Recuerda, estos scripts siempre se ejecutan como SYS, a menos que expresamente digan lo contrario.

Saludos
  #5 (permalink)  
Antiguo 18/06/2008, 15:24
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 13 años
Puntos: 85
Respuesta: leer un xml desde pl-sql

Hola,

Revisando los scripts veo que, al menos en 10g, hay que instalar XDB para tener disponible DBMS_XMLDOM, esto se hace con ORACLE_HOME/rdbms/admin/catqm.sql.

Saludos
  #6 (permalink)  
Antiguo 26/06/2008, 02:41
 
Fecha de Ingreso: junio-2008
Mensajes: 5
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: leer un xml desde pl-sql

Muchas gracias Matanga.
Ya me he instalado el XMLDOM pero ahora me da el error: ORA-29540: class oracle/xml/parser/plsql/XMLDocumentCover does not exist justo al ejecutar la linea:
doc := SYS.XMLDOM.newDOMDocument .
El package XMLDocumentCover está instalado y tengo permisos de ejecución.
¿Te suena?.
  #7 (permalink)  
Antiguo 26/06/2008, 03:21
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 13 años
Puntos: 85
Respuesta: leer un xml desde pl-sql

Hola,

¿Como instalaste el package DBMS_XMLDOM?

Lo que puede estar faltando es la ejecución del script catxdbj.sql, pero no estoy seguro, nunca instale XDB en 9i y se que es diferente a la instalacion en 10g.

Saludos
  #8 (permalink)  
Antiguo 26/06/2008, 05:08
 
Fecha de Ingreso: junio-2008
Mensajes: 5
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: leer un xml desde pl-sql

pues lo instaló el dba. ¿Tiene algo que ver la forma de instalarlo?
  #9 (permalink)  
Antiguo 26/06/2008, 06:24
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 13 años
Puntos: 85
Respuesta: leer un xml desde pl-sql

Hola,

La unica forma en que logro que la instalacion sea correcta es:

1. shared_pool_size=150M
2. java_pool_size=150M
3. Instalacion de JServer, con el DBCA.
4. Instalacion de XML via scripts
4.1 catqm.sql USUARIO TS_DATOS TS_TEMP
4.2 catxdbj.sql

Despues de eso pruebo el script de la documentacion en Example 11-1 Creating and Manipulating a DOM Document y funciona bien, no tengo problemas con el metodo newDOMDocument.

Nota 1, para que la instalacion de catqm.sql sea correcta, es necesario pasarle los parametros (USUARIO, TS_DATOS y TS_TEMP) en la misma linea.

Nota 2, la version es 9.2.0.1

Saludos
  #10 (permalink)  
Antiguo 17/02/2010, 12:40
 
Fecha de Ingreso: febrero-2010
Mensajes: 1
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: leer un xml desde pl-sql

Hola
Para leer un XML les dejo este link

http://www.oracle-base.com/articles/8i/ParseXMLDocuments8i.php


Ese mismo lo utilice yo pero tambien tengo un pequeño detalle y me pregunto si de casualidad sabrán la opcion con la que se pueden leer varios tags con el mismo nombre?? por ejemplo, tengo un xml mas o menos asi...

<?xml version="1.0" encoding="ISO-8859-1" ?>
- <OriginationResponses Approved="350" Error="0" FromCompany="UGC" ResponseDate="2008-12-10T00:00:00" Suspend="0" SystemFailures="0" ToCompany="SHF" TotalLoans="350" XMLStructureVersion="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <MIResponse Status="Denied">
<preapprovalnumber>08611017878</preapprovalnumber>
<loanid>196110165800696</loanid>
<certificatenumber>588722</certificatenumber>
<inforcedate>2008-08-15T00:00:00</inforcedate>
<coveragepercentage>70.0</coveragepercentage>
<insuredloanpercentage>25.0</insuredloanpercentage>
<loanamount>311400.00</loanamount>
<loanterm>240</loanterm>
- <MIMessages>
<message>El loanterm debe ser mayor</message>
<message>El loanId es incorrecto</message>
<message>El coverage es alto</message>
</MIMessages>
</MIResponse>
</OriginationResponses>

y la parte de los mensajes es la que se debe de leer pero no me lo lee solo cuando tiene un solo mensaje y no varios.

La pregunta es si hay alguna instruccion con la que si se pueda leer todo para poder manipular dicha información.

Mi ejemplo para leer el xml es muy similar como el que esta en link (si requieren esa informacion)

Saludos!!! Espero me puedan ayudar y si no pues espero al menos que les sirva el link que les dejo =D
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:14.