I den här handledningen kommer du att lära dig hur du infogar en fil i Oracle-databasen. Filtypen kan vara en PDF, en bild eller vilket dokument som helst. Jag använder datatypen BLOB i Oracle-tabellen för att visa följande exempel.
Följ dessa steg för att infoga en fil (PDF, bild, Docx, Xlsx, etc.) i Oracle Database Tables BLOB-kolumn
- Skapa en tabell i Oracles databasschema med en BLOB-kolumn, som visas i exemplet nedan.
SKAPA TABELL ext_filer (filnamn VARCHAR2 (1000), filinnehåll BLOB)/
- Skapa sedan ett databaskatalogobjekt där du vill infoga filerna, som visas i exemplet nedan.
SKAPA ELLER ERSÄTT KATALOG PDF_FILES Som 'C:\my_pdf_files';
- Skapa nu följande funktion för att konvertera en fil till en BLOB-datatyp. Men se till att du ändrar katalognamnet PDF_FILES i funktionen nedan med det namn du skapade katalogobjektet.
SKAPA ELLER ERSÄTT FUNKTION 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.OPEN(DBMS_REDBLOBBITE(dest_REDBLOBBITE); .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_to_loc;END file;Nu är du redo för testet för att infoga en fil i Oracles databastabell.
Testa för att infoga en PDF-fil
DECLAREv_blob BLOB;BEGINv_blob :=file_to_blob ('emp.pdf');INSERT INTO ext_filesVALUES ('emp.pdf', v_blob);COMMIT;END;/Testa för att infoga en bildfil (JPG)
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;/Kontrollera tabellen för poster
VÄLJ * FRÅN EXT_FILER;Utdata
Se även:
- Packa upp en ZIP-fil med PL/SQL
- ZIP-filer i PL/SQL