Ver Mensaje Individual
  #4 (permalink)  
Antiguo 12/11/2007, 08:24
Avatar de matanga
matanga
 
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 6 meses
Puntos: 85
Re: Generar Desde Oracle Ficheros Xml

Hola,

Lo primero a decidir es desde donde vas a bajar los datos, en el ejemplo que deje lo hice dentro de la base de datos, utilizando el paquete de Oracle UTL_FILE, esto significa que los ficheros se van a generar en el servidor donde este instalado Oracle. Pero para poder trabajar con este paquete hay que configurar dos cosas.

1. El parametro de Oracle UTL_FILE_DIR='Directorio'.
2. Permisos de ejecucion sobre el paquete UTL_FILE al usuario de base de datos con el que estes trabajando.

Estas dos cosas se las tienes que pedir a tu Administrador de base de datos. Probablemente por problemas de permisos es que no te este compilado la linea xfile utl_file.file_type;.

Ahora, segun veo tu codigo, a partir de la linea

Código:
CONTEXT := DBMS_XMLGEN.newcontext ('SELECT * FROM ' || w_tbprs.ctabla);
RESULT := DBMS_XMLGEN.getxml (CONTEXT);
ya puedes bajar los datos al fichero XML, dado que tienes un CLOB (RESULT) con toda la informacion, hasta ahora no veo la necesidad de las tablas DATO_TABLA_XML y PROCE3.

Despues de que tengas los datos dentro de RESULT puedes utilizar..

Código:
--creamos y obtenemos el fichero
xfile:= utl_file.fopen('/home/oracle/scripts/data',user_file,'w');

--obtenemos la longitud del xml lob	
len := dbms_lob.getlength(xml);

while (pos <= len) loop
	vxml := dbms_lob.substr(xml, amount, pos);
	utl_file.put_line(xfile,vxml,TRUE);
	pos := pos + amount;
end loop;

utl_file.fclose(xfile);
Donde la variable xml es igual a RESULT.

Saludos