sql >> Database teknologi >  >> RDS >> Oracle

Hvordan indsætter man en fil i Oracle-databasen?

I denne vejledning lærer du, hvordan du indsætter en fil i Oracle-databasen. Filtypen kan være en PDF, et billede eller et hvilket som helst dokument. Jeg bruger BLOB-datatypen i Oracle-tabellen til at demonstrere følgende eksempel.

Følg disse trin for at indsætte en fil (PDF, billede, Docx, Xlsx osv.) i Oracle-databasetabellens BLOB-kolonne

  1. Opret en tabel i Oracle-databaseskemaet med en BLOB-kolonne, som vist i nedenstående eksempel.
OPRET TABEL ext_filer (filnavn VARCHAR2 (1000),fil_indhold BLOB)/
  1. Opret derefter et databasebiblioteksobjekt, hvorfra du vil indsætte filerne, som vist i eksemplet nedenfor.
OPRET ELLER ERSTAT DIRECTORY PDF_FILES Som 'C:\my_pdf_files';
  1. Opret nu følgende funktion til at konvertere en fil til en BLOB-datatype. Men sørg for at ændre PDF_FILES-biblioteksnavnet i nedenstående funktion med det navn, du oprettede biblioteksobjektet.
OPRET ELLER ERSTAT 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); .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 fil; 

Nu er du klar til testen for at indsætte en fil i Oracle-databasetabellen.

Test for at indsætte en PDF-fil

DECLAREv_blob BLOB;BEGINv_blob :=file_to_blob ('emp.pdf');INSERT INTO ext_filesVALUES ('emp.pdf', v_blob);COMMIT;END;/

Test for at indsætte en billedfil (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;/

Tjek tabellen for poster

VÆLG * FRA EXT_FILES;

Output

Se også:

  • Udpak en ZIP-fil ved hjælp af PL/SQL
  • ZIP-filer i PL/SQL
  1. Find forælder rekursivt ved hjælp af Query

  2. Sådan bruger du cPanel MySQL Database Wizard

  3. Len() vs datalength() i SQL Server 2005

  4. SELECT rejser undtagelser i PL/pgSQL-funktionen