Преди да напиша и да дам този пример за създаване на 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