Aprende como Construir un Reporte con UTL_FILE

Saber utilizar la librería UTL_FILE de Oracle te permitirá generar o escribir toda clase de archivos planos que pueden ser del tipo Reportes, Log, Parámetros, Formato HTML, Carga de datos, etc.

Para escribir o crear un archivo plano lo primero que se debe hacer es abrir el archivo en modo de escritura especificando el nombre y la ruta donde será almacenado, posteriormente se escriben los datos en el archivo en el formato que se desee y finalmente se cierra el archivo. Revisemos un ejemplo para explicar mejor como se debe hacer todo esto:

Ejemplo #1: Supongamos que se debe generar un reporte con todos los empleados que trabajan en un departamento en particular.

Procedure Prc_Generar_Reporte( pin_id_departamento in number) is

lst_error          varchar2(200);

lfi_file             utl_file.file_type;

Begin

— se crea el archivo para escritura.

lfi_file:= utl_file.fopen(‘mi_ruta’, ‘reporte_departamento_’ || to_char(

pin_id_departamento) ||’_‘|| to_char(sysdate,’ddmmyyyy’)||’.txt’||, ‘w’);

— cabecera del reporte

utl_file.put_line(lfi_file, ’Rut      Nombre              Direccion                      Edad ’);

utl_file.put_line(lfi_file, ’—————————————————’);

for r_dat in ( select to_char(emp.rut)||’-‘||emp.dv rut, emp.nombre, emp.direccion,

emp.edad from t_empleado emp where emp.id_departamento =

pin_id_departamento )

loop

— se escriben en el archivo todos los empleados del departamento.

utl_file.put_line(lfi_file, r_dat.rut ||’ ’|| r_dat.nombre ||’ ’|| r_dat.direccion ||’ ’||

to_char(r_dat.edad) );

end loop;

— se cierra el archivo

utl_file.fclose(lfi_file);

Exception

When others then

lst_error:= ‘Error al escribir en archivo’;

End Prc_Generar_Reporte;

TÚ REPORTE: “Cómo Construir un SELECT Eficiente en ORACLE en Solo 7 Pasos”  ¡ Haz Click Aquí y Descárgalo GRATIS Ahora !

En este ejemplo primero se crea la variable de tipo archivo a utilizar (lfi_file), después se genera o se abre el archivo plano con la función utl_file.fopen la que recibe el nombre de la ruta destino, el nombre del archivo a generar y el modo de apertura en este caso es ‘W’ (write – escritura), a continuación con la función utl_file.put_line se escribe el encabezado del reporte y todos los empleados del departamento, finalmente se cierra el archivo con la función utl_file.fclose. El resultado del reporte quedaría como el siguiente:

Rut                Nombre                          Direccion                     Edad

—————————————————————

10205563-7   LUIS PEREZ LORCA  MAIPU #32, ARICA  32

17853845-2   JUAN PAEZ MELO     LIRA #78, IQUIQUE  45

Estoy muy interesado en conocer tu opinión y/o comentario sobre este artículo, también cuéntame sobre qué es lo que quieres saber de Packages en Oracle y/o dime cuál es tu principal frustración a la hora de trabajar con Packages en Oracle. Estaré muy atento respondiendo tus preguntas y/o comentarios, gracias.

Saludos

Roberto Vicencio – Escritor del Reporte:

Cómo Construir un SELECT Eficiente en ORACLE en 7 Pasos

Esta entrada fue publicada en Packages en Oracle, Procedures en Oracle y etiquetada , , , , , , . Guarda el enlace permanente.

6 respuestas a Aprende como Construir un Reporte con UTL_FILE

  1. hart dijo:

    buenas noches..
    pero como genero un archivo el reporte en un archivo word? o un pdf o excel?
    gracias

    • Hola Hart, gracias por comunicarte, el archivo que se puede generar mas fácilmente es un excel con extensión .csv donde los datos deben ir delimitados por comas, para hacer un archivo word o un pdf se debe hacer un desarrollo mas avanzado utilizando código html.

      PD: Ya obtuviste mi Libro-reporte sobre ‘Como Construir un Select Eficiente en Oracle en Solo 7 Pasos’, si aún no lo tienes puedes obtenerlo desde aquí:
      http://dominatuspackagesenoracle.com/

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

  2. Elmer Jara dijo:

    Roberto, gracias por el artículo. Entiendo que los archivos se pueden generar tanto en el servidor como en el cliente. Le agradezco si me puede informar como puedo acceder a los archivos generados. Leí sobre los directorios virtuales en Oracle pero no tengo claro cómo y dónde se almacenan y cómo se accede a los mismos.

    • Hola Elmer, gracias por comunicarte y por tu comentario, generalmente los archivos siempre se crean en el servidor y para acceder a ellos debes entrar al servidor de unix y dirigirte a la carpeta que definiste para crear los archivos, esto lo puedes hacer por FTP u otro programa que te permita acceder al servidor, también puedes pedirle a tu DBA que te ayude con este tema, gracias.

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.
      http://dominatuspackagesenoracle.com/blog/

  3. Esperanza dijo:

    Cómo puedo corregir los saltos de línea en el archivo que genera?

    Gracias.

    • Hola Esperanza, gracias por comunicarte, no se a que te refieres con corregir los saltos de línea, lo que te puedo decir es que la función put_line coloca de forma automática el salto de linea por cada texto que imprimes.

      PD: Ya pudiste ver mi libro-reporte sobre ‘Cómo Crear un SELECT Eficiente en Oracle en Solo 7 Pasos’, si aún no lo tienes puedes obtenerlo desde aquí: http://dominatuspackagesenoracle.com/

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s