In deze tutorial leert u hoe u een bestand invoegt in de Oracle-database. Het type bestand kan een PDF, een afbeelding of een willekeurig document zijn. Ik gebruik het BLOB-gegevenstype in de Oracle-tabel om het volgende voorbeeld te demonstreren.
Volg deze stappen om een bestand (PDF, afbeelding, Docx, Xlsx, enz.) in de BLOB-kolom van de Oracle Database-tabel in te voegen
- Maak een tabel in het Oracle-databaseschema met een BLOB-kolom, zoals in het onderstaande voorbeeld.
CREATE TABLE ext_files (file_name VARCHAR2 (1000),file_content BLOB)/
- Maak vervolgens een databasedirectory-object van waaruit u de bestanden wilt invoegen, zoals in onderstaand voorbeeld.
CREER OF VERVANG DIRECTORY PDF_FILES Als 'C:\my_pdf_files';
- Maak nu de volgende functie om een bestand om te zetten in een BLOB-gegevenstype. Maar zorg ervoor dat u de mapnaam PDF_FILES in de onderstaande functie wijzigt met de naam waarmee u het mapobject hebt gemaakt.
FUNCTIE MAKEN OF VERVANGEN file_to_blob(p_file_name VARCHAR2) RETURN BLOB ASdest_loc BLOB :=empty_blob();src_loc BFILE :=BFILENAME('PDF_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.BLOMS_LOB.BLOMS_LOB.BLOMS_LOB.BLOMS_LOB.BLOMS_LOB. .LOADFROMFILE(dest_lob => dest_loc, src_lob => src_loc, bedrag => DBMS_LOB.getLength(src_loc));DBMS_LOB.CLOSE(dest_loc);DBMS_LOB.CLOSE(src_loc);RETURN dest_loc;END file_to_bloNu bent u klaar voor de test om een bestand in de Oracle-databasetabel in te voegen.
Test om een PDF-bestand in te voegen
DECLAREv_blob BLOB;BEGINv_blob :=file_to_blob ('emp.pdf');INSERT INTO ext_filesVALUES ('emp.pdf', v_blob);COMMIT;END;/Test om een afbeeldingsbestand (JPG) in te voegen
DECLAREv_blob BLOB;BEGINv_blob :=file_to_blob ('oracle-18c-install-step-1.JPG');INSERT INTO ext_filesVALUES ('oracle-18c-install-step-1.JPG', v_blob);COMMIT;END;/Controleer de tabel op records
SELECT * FROM EXT_FILES;Uitvoer
Zie ook:
- Pak een ZIP-bestand uit met PL/SQL
- ZIP-bestanden in PL/SQL