Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да създадете PDF отчет с помощта на PL/SQL

Преди да напиша и да дам този пример за създаване на PDF отчет с помощта на PL/SQL в Oracle, проучих много в Google, но не намерих подходящ пример. Така че реших, че трябва да дам пример за генериране на PDF файл с отчет с помощта на PL/SQL. За да направите това първо, трябва да инсталирате пакет база данни pdf_builder_pkg във вашата схема . Можете да изтеглите този пакет от следната връзка pdf_builder_pkg.

След като изпълните горния пакетен скрипт във вашата схема, трябва да създадете обект на директория на база данни за местоположението на вашите PDF файлове, както е показано по-долу:

CREATE OR REPLACE DIRECTORY 
MY_PDF_DIR AS 
'D:\abc\plsql_pdfs'
/

Променете пътя в горната команда според пътя на вашата директория на Windows или ако използвате Linux или Unix, тогава според тяхното местоположение, както е показано в примера по-долу:

CREATE OR REPLACE DIRECTORY 
MY_PDF_DIR AS 
'/usr09/oracle/files/'
/

Можете да промените името на директорията MY_PDF_DIR на всяко име, защото трябва да предадем това име на директория като параметър на save_pdf процедура, която ще ви покажа в примера по-долу.

Вече сте инсталирали пакета на базата данни и сте създали обекта директория. Сега можете да напишете процедурата за създаване на PDF отчет с помощта на PL/SQL . Тук по-долу е примерният PL/SQL блок.

DECLARE
 CURSOR c_emp
 IS
 SELECT empno,
 ename,
 job,
 mgr,
 hiredate,
 sal,
 comm,
 deptno
 FROM employee;

v_hdr VARCHAR (1000);
 v_dtl VARCHAR (1000);
 v_rec NUMBER (10) := 0;
 v_sal NUMBER (10) := 0;
 v_comm NUMBER (10) := 0;
 BEGIN
 /* First line to initialize the package*/
 pdf_builder_pkg.init;
 /* Set the font to bold for heading*/
 pdf_builder_pkg.set_font ('helvetica', 'b');
 /* Write a line using pdf_builder_pkg.write procedure*/
 pdf_builder_pkg.write ('Employee Report');
 /* Set the font to normal */
 pdf_builder_pkg.set_font ('helvetica');
 pdf_builder_pkg.
 write ('Printed Date: ' || SYSDATE, -1, p_alignment => 'right');
 pdf_builder_pkg.
 write (
 '________________________________________________________________________________');
 pdf_builder_pkg.write (' ' || CHR (10) || CHR (13));
 /* Setting font courier for better alignment*/
 pdf_builder_pkg.set_font ('courier');
 v_hdr :=
 RPAD ('Emp No.', 10, ' ')
 || RPAD ('Emp Name', 12, ' ')
 || RPAD ('Job', 10, ' ')
 || RPAD ('Manager', 10, ' ')
 || RPAD ('Hire Date', 12, ' ')
 || RPAD ('Salary', 10, ' ')
 || RPAD ('Comm', 10, ' ');
 pdf_builder_pkg.write (v_hdr);
 pdf_builder_pkg.set_font ('helvetica');
 pdf_builder_pkg.
 write (
 '________________________________________________________________________________');
 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.job, 10, ' ')
 || RPAD (c.mgr, 10, ' ')
 || RPAD (c.hiredate, 12, ' ')
 || RPAD (c.sal, 10, ' ')
 || RPAD (c.comm, 10, ' ')
 || CHR (10)
 || CHR (13);
 pdf_builder_pkg.write (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.
 write (
 '________________________________________________________________________________');
 pdf_builder_pkg.set_font ('courier');
 pdf_builder_pkg.write ('Records Count:' || v_rec);
 pdf_builder_pkg.write ('Total Salary:' || v_sal);
 pdf_builder_pkg.write ('Total Comm:' || v_comm);
 /* Saving the PDF file by passing directory name and file name */
 pdf_builder_pkg.save_pdf ('MY_PDF_DIR', 'emp_report.pdf');
 END;
 /

Можете да намерите PDF файла с име emp_report.pdf в местоположението на вашата директория . Ако искате повече справка за командите за пакет pdf_builder_pkg, можете да проверите следната връзка за изтегляне. PDF отчетът ще изглежда както е показано по-долу:

Можете също да проверите тази помощна програма, създадена от мен, за да генерира шаблон за PL/SQL процедура според вашия SQL израз. Моля, проверете Генериране на PL/SQL шаблон за процедура.

Вижте също:

  • Създавайте файлове на Excel с помощта на PL/SQL
  • Създавайте ZIP файлове с помощта на PL/SQL
  • Експортиране на данни във файл JSON в Oracle 11g с помощта на PL/SQL
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изваждане на дати в Oracle - числови или интервални тип данни?

  2. Примерни схеми на GitHub

  3. Как да получите вчерашна дата в Oracle

  4. Функция ASIN() в Oracle

  5. Как да добавите вертикални граници към вашата изходна мрежа SQL*Plus / SQLcl