OracleでPL/SQLを使用してPDFレポートを作成するためにこの例を作成して提供する前に、Googleで多くの調査を行いましたが、適切な例は見つかりませんでした。そこで、PL/SQLを使用してPDFレポートファイルを生成する例を示す必要があると思いました。これを行うには、まず、スキーマに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/' /を作成または置換します
このディレクトリ名をパラメータとしてsave_pdfプロシージャに渡す必要があるため、ディレクトリ名MY_PDF_DIRを任意の名前に変更できます。これを以下の例で示します。
これで、データベースパッケージがインストールされ、ディレクトリオブジェクトが作成されました。これで、 PL/SQLを使用してPDFレポートを作成する手順を記述できます。 。以下は、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; /
ディレクトリの場所にemp_report.pdfという名前のPDFファイルがあります 。パッケージpdf_builder_pkgのコマンドリファレンスがさらに必要な場合は、次のリンクを確認してダウンロードできます。 PDFレポートは次のようになります:
また、私が作成したこのユーティリティをチェックして、SQL文に従ってPL /SQLプロシージャ・テンプレートを生成することもできます。 「PL/SQLプロシージャ・テンプレートの生成」をチェックしてください。
関連項目:
- PL/SQLを使用してExcelファイルを作成する
- PL/SQLを使用してZIPファイルを作成する
- PL/SQLを使用してOracle11gのJSONファイルにデータをエクスポートする