Dalam posting blog ini, saya memberikan contoh file ZIP dalam PL/SQL. Saya menggunakan Alexandria PL/SQL Util Library untuk melakukan tugas ini. Pustaka yang sama yang saya gunakan untuk contoh mengekspor data ke Excel dari tabel Oracle Database. Ikuti langkah-langkah ini untuk membuat file ZIP menggunakan PL/SQL di Oracle.
Membuat File ZIP di Oracle Menggunakan PL/SQL
- Pertama, unduh pustaka Alexandria PL/SQL dari Github menggunakan tautan Unduh berikut.
- Setelah mengunduh file, ekstrak dan cari zip_util_pkg.pks dan zip_util_pkg.pkb file di \alexandria-plsql-utils-master\ora\ direktori dan jalankan skrip ini di Skema Database Oracle Anda untuk menginstalnya.
- Jika diperlukan objek yang didukung, cari di folder \alexandria-plsql-utils-master\ dan instal.
- Anda telah menginstal paket utilitas dan objek terkait. Sekarang buat objek direktori dalam skema Anda, seperti yang ditunjukkan pada contoh di bawah ini.
Buat ATAU Ganti Direktori zip_files sebagai 'c:\zip_files';
- Kemudian buat fungsi di bawah ini dalam Skema yang sama untuk mengonversi file menjadi BLOB. Fungsi ini akan digunakan untuk membuat file Zip menggunakan paket PL/SQL zip_util_pkg. Perhatikan juga, bahwa sebelum membuat fungsi ini ubah ZIP_FILES nama direktori dengan objek direktori database yang Anda buat di atas.
BUAT ATAU GANTI FUNGSI file_to_blob (p_file_name VARCHAR2) KEMBALI BLOBASdest_loc BLOB :=EMPTY_BLOB ();src_loc BFILE :=BFILENAME ('ZIP_FILES ', p_file_name);BEGINDBMS_LOB.OPEN (src_loc, DBMS_LOB.LOB_READONLY);DBMS_LOB.CREATETEMPORARY (lob_loc => dest_loc,cache => TRUE,dur => DBMS_LOB.session);DBMS_LOB.OPEN (dest_LOB.LODB); .LOADFROMFILE (dest_lob => dest_loc,src_lob => src_loc,amount => DBMS_LOB.getLength (src_loc));DBMS_LOB.CLOSE (dest_loc);DBMS_LOB.CLOSE (src_loc);RETURN dest_loc;END file_to_blob;/Uji
Catatan: Pada contoh berikut, file emp.dat harus ada di direktori ZIP_FILES yang kita buat di atas.
DECLAREl_file1 BLOB;l_zip BLOB;BEGIN/* emp.dat harus berada di lokasi direktori ZIP_FILES */l_file1 :=file_to_blob ('emp.dat ');zip_util_pkg.add_file (l_zip, 'emp.dat', l_file1);zip_util_pkg.finish_zip (l_zip);/* itu akan membuat file zip bernama plsql_1.zip di direktori ZIP_FILES */zip_util_pkg.save_zip (l_zip, ' ZIP_FILES ', 'plsql_1.zip');END;/Sekarang Anda dapat memeriksa lokasi direktori ZIP_FILES untuk file plsql_1.zip.
Untuk ZIP Beberapa File
DECLAREl_file1 BLOB;l_file2 BLOB;l_zip BLOB;BEGINl_file1 :=file_to_blob ('emp.dat');l_file2 :=file_to_blob ('scott.sql');zip_util_pkg.add_file (l_zip, 'emp_file1);zip_util_pkg.add_file (l_zip, 'scott.sql', l_file2);zip_util_pkg.finish_zip (l_zip);zip_util_pkg.save_zip (l_zip, 'ZIP_FILES ', 'plsql_3.zip');END;/Lihat juga:
- Unzip File di PL/SQL
- Buat File JSON di Oracle 11g Menggunakan PL/SQL
- Ekspor Data Dari Pengembang Oracle SQL ke Excel
- Membuat File PDF Menggunakan PL/SQL