Dalam tutorial ini, Anda akan belajar cara memasukkan file ke dalam database Oracle. Jenis file dapat berupa PDF, Gambar, atau dokumen apa pun. Saya menggunakan tipe data BLOB di tabel Oracle untuk mendemonstrasikan contoh berikut.
Ikuti Langkah-Langkah Ini untuk Menyisipkan File (PDF, Gambar, Docx, Xlsx, dll.) di Kolom BLOB Tabel Database Oracle
- Buat tabel dalam skema database Oracle dengan kolom BLOB, seperti yang ditunjukkan pada contoh di bawah ini.
CREATE TABLE ext_files ( file_name VARCHAR2 (1000), file_content BLOB) /
- Kemudian buat objek direktori database dari mana Anda ingin memasukkan file, seperti yang ditunjukkan pada contoh di bawah ini.
CREATE OR REPLACE DIRECTORY PDF_FILES As 'C:\my_pdf_files';
- Sekarang buat fungsi berikut untuk mengonversi file menjadi tipe data BLOB. Tetapi pastikan Anda mengubah nama direktori PDF_FILES pada fungsi di bawah ini dengan nama yang Anda buat untuk objek direktori.
CREATE OR REPLACE FUNCTION file_to_blob(p_file_name VARCHAR2) RETURN BLOB AS dest_loc BLOB := empty_blob(); src_loc BFILE := BFILENAME('PDF_FILES', p_file_name); BEGIN DBMS_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_loc, DBMS_LOB.LOB_READWRITE); DBMS_LOB.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; /
Sekarang Anda siap untuk tes memasukkan file ke tabel database Oracle.
Uji untuk Memasukkan File PDF
DECLARE v_blob BLOB; BEGIN v_blob := file_to_blob ('emp.pdf'); INSERT INTO ext_files VALUES ('emp.pdf', v_blob); COMMIT; END; /
Uji untuk Memasukkan File Gambar (JPG)
DECLARE v_blob BLOB; BEGIN v_blob := file_to_blob ('oracle-18c-install-step-1.JPG'); INSERT INTO ext_files VALUES ('oracle-18c-install-step-1.JPG', v_blob); COMMIT; END; /
Periksa Tabel untuk Catatan
SELECT * FROM EXT_FILES;
Keluaran
Lihat juga:
- Buka zip file ZIP menggunakan PL/SQL
- File ZIP dalam PL/SQL