Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bagaimana Cara Memasukkan File di Database Oracle?

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

  1. 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)
/
  1. 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';
  1. 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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Atur Ulang Urutan di oracle 11g

  2. Menggunakan tampilan tanpa kunci utama dengan Entitas

  3. REGEXP_REPLACE() Fungsi di Oracle

  4. Pilih Baris Ke-N Dari Tabel Di Oracle

  5. Apakah ada ekspresi CASE seperti itu di JPQL?