sql >> Base de Datos >  >> RDS >> Oracle

Cómo crear un informe en PDF usando PL/SQL

Antes de escribir y dar este ejemplo para crear un informe en PDF usando PL/SQL en Oracle, investigué mucho en Google, pero no encontré ningún ejemplo adecuado. Entonces pensé que debería dar un ejemplo para generar un archivo de informe PDF usando PL/SQL. Para hacer esto primero, debe instalar el paquete de base de datos pdf_builder_pkg en su esquema . Puede descargar este paquete desde el siguiente enlace pdf_builder_pkg.

Después de ejecutar el script del paquete anterior en su esquema, debe crear un objeto de directorio de base de datos para la ubicación de sus archivos PDF, como se muestra a continuación:

CREAR O REEMPLAZAR EL DIRECTORIO MI_PDF_DIR COMO 'D:\abc\plsql_pdfs'/

Cambie la ruta en el comando anterior según la ruta del directorio de Windows o, si está utilizando Linux o Unix, según su ubicación, como se muestra en el siguiente ejemplo:

CREAR O REEMPLAZAR EL DIRECTORIO MI_PDF_DIR COMO '/usr09/oracle/files/'/

Puede cambiar el nombre del directorio MY_PDF_DIR a cualquier nombre porque necesitamos pasar este nombre de directorio como parámetro a un procedimiento save_pdf, que le mostraré en el siguiente ejemplo.

Ahora ya instaló el paquete de base de datos y creó el objeto de directorio. Ahora puede escribir el procedimiento para crear un informe en PDF usando PL/SQL . A continuación se muestra el bloque PL/SQL de ejemplo.

DECLARE EL CURSOR c_emp ES SELECCIONE empno, nombre, trabajo, administrador, fecha de contratación, sal, comunicación, número de departamento DE empleado; v_hdr VARCHAR (1000); v_dtl VARCHAR (1000); v_rec NUMERO (10) :=0; v_sal NUMERO (10) :=0; v_comm NÚMERO (10) :=0; BEGIN /* Primera línea para inicializar el paquete*/ pdf_builder_pkg.init; /* Establecer la fuente en negrita para el encabezado*/ pdf_builder_pkg.set_font ('helvética', 'b'); /* Escriba una línea usando el procedimiento pdf_builder_pkg.write*/ pdf_builder_pkg.write ('Informe del empleado'); /* Establecer la fuente en normal */ pdf_builder_pkg.set_font ('helvética'); pdf_builder_pkg. write ('Fecha de impresión:' || SYSDATE, -1, p_alignment => 'right'); pdf_builder_pkg. escribe ( '________________________________________________________________________________'); pdf_builder_pkg.write (' ' || CHR (10) || CHR (13)); /* Configuración del mensajero de fuente para una mejor alineación*/ pdf_builder_pkg.set_font ('mensajero'); v_hdr :=RPAD ('Emp No.', 10, ' ') || RPAD ('Nombre Emp', 12, ' ') || RPAD ('Trabajo', 10, ' ') || RPAD ('Administrador', 10, ' ') || RPAD ('Fecha de contratación', 12, ' ') || RPAD ('Salario', 10, ' ') || RPAD ('Comunicación', 10, ' '); pdf_builder_pkg.escribir (v_hdr); pdf_builder_pkg.set_font ('helvética'); pdf_builder_pkg. escribe ( '________________________________________________________________________________'); pdf_builder_pkg.write (CHR (10) || CHR (13)); pdf_builder_pkg.set_font ('courier');FOR c IN c_emp LOOP v_dtl :=RPAD (c.empno, 10, ' ') || RPAD (c.ename, 12, ' ') || RPAD (c.trabajo, 10, ' ') || RPAD (director general, 10, ' ') || RPAD (fecha de contratación, 12, ' ') || RPAD (c.sal, 10, ' ') || RPAD (c.comm, 10, ' ') || CDH (10) || CDH (13); pdf_builder_pkg.escribir (v_dtl); v_rec :=v_rec + 1; v_sal :=v_sal + c.sal; v_comm :=v_comm + NVL (c.comm, 0); END LOOP;pdf_builder_pkg.set_font ('helvetica'); pdf_builder_pkg. escribe ( '________________________________________________________________________________'); pdf_builder_pkg.set_font ('mensajero'); pdf_builder_pkg.write ('Recuento de registros:' || v_rec); pdf_builder_pkg.write ('Salario total:' || v_sal); pdf_builder_pkg.write ('Comunicación total:' || v_comm); /* Guardando el archivo PDF pasando el nombre del directorio y el nombre del archivo */ pdf_builder_pkg.save_pdf ('MY_PDF_DIR', 'emp_report.pdf'); FIN; //pre> 

Puede encontrar el archivo PDF llamado emp_report.pdf en la ubicación de su directorio . Si desea obtener más referencias de comandos para el paquete pdf_builder_pkg, puede consultar el siguiente enlace para descargar. El informe en PDF se verá como se muestra a continuación:

También puede verificar esta utilidad creada por mí para generar una plantilla de procedimiento PL/SQL según su declaración SQL. Marque Generar plantilla de procedimiento PL/SQL.

Ver también:

  • Crear archivos de Excel usando PL/SQL
  • Crear archivos ZIP usando PL/SQL
  • Exportar datos a un archivo JSON en Oracle 11g mediante PL/SQL