miércoles, 17 de septiembre de 2008

Generar XML y Archivo Excel con SQL*PLUS

Para cierto proyecto ( el cual no puedo nombrar aun ) desarrollado con Oracle, me pidieron el contenido de unas tablas en formato Excel. A si que me puse a averiguar en los manuales de referencia de Oracle especificamente de SQL*PLUS y mediante el comando spool genera el archivo, por ejemplo:

set markup html on spool on;spool Planilla.xls;
SELECT…… FROM …. ;


spool off;set markup html off spool off;

Lo que hace basicamente genera un archivo HTML estructurado como tablas, segun la estructura de la consulta ( query ) y le da la extension .xls.
Soporta todos los comandos de formateo de SQL*PLUS y se reflejan en el excel.
Ahora para generar el xml solo tenemos que usar el package de oracle para la generacion de xml, por ejemplo:

set long 1000000000 longc 1000000000 head off pages 0 trims on lin
set linesize 30032767 feedback off
spool fichero.xml
SELECT dbms_xmlgen.getxml(’CONSULTA_SQL’) from dual;
spool off

Genera el xml con la funcion del package dbms_xmlgen.getxml que tiene por parametro la consulta select y genera automaticamente en un archivo con la estructura de un archivo xml de la consulta hecha a la base de datos. Cuando se genera el xml hay que abrirlo y borrar el codigo SQL*PLUS, ya que tambien escribe el codigo escrito para generar el xml.

Esta opcion no acepta formateo SQL*PLUS.

Definir bien el largo de linea para conservar la estructura xml, por ejemplo que el largo de linea me aguante bien el largo de la consulta del campo.

Este tip es ahorro de problemas y de tiempo, ahora, para que me puede servir esto?, bueno para muchas cosas, pero en mi caso espcifico me sirvio para migrar los datos de Oracle a MySQL con un xml.

1 comentario:

Unknown dijo...

Hola Ylanzo,

Y donde queda fisicamente el archivo Excel?

Saludos!