sql >> Databasteknik >  >> RDS >> Oracle

Hur infogar man en fil i Oracle Database?

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

  1. 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)/
  1. 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';
  1. 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
  1. Hur man mappar ett entitetsfält vars namn är ett reserverat ord i JPA

  2. How to_timestamp() Fungerar i PostgreSQL

  3. Hur hämtar jag alla rader i min DB?

  4. Formatera ett tal som valuta i MariaDB