sql >> Databáze >  >> RDS >> Oracle

Jak vložit soubor do databáze Oracle?

V tomto tutoriálu se naučíte, jak vložit soubor do databáze Oracle. Typ souboru může být PDF, obrázek nebo jakýkoli dokument. K demonstraci následujícího příkladu používám datový typ BLOB v tabulce Oracle.

Podle těchto kroků vložte soubor (PDF, obrázek, Docx, Xlsx atd.) do sloupce BLOB tabulky databáze Oracle

  1. Vytvořte tabulku ve schématu databáze Oracle se sloupcem BLOB, jak ukazuje příklad níže.
CREATE TABLE ext_files (název_souboru VARCHAR2 (1000),obsah_souboru BLOB)/
  1. Potom vytvořte objekt adresáře databáze, odkud chcete soubory vložit, jak je znázorněno v příkladu níže.
VYTVOŘTE NEBO NAHRAĎTE ADRESÁŘ PDF_FILES jako 'C:\my_pdf_files';
  1. Nyní vytvořte následující funkci pro převod souboru na datový typ BLOB. Ujistěte se však, že jste změnili název adresáře PDF_FILES v níže uvedené funkci s názvem, který jste vytvořili pro objekt adresáře.
VYTVOŘTE NEBO NAHRAĎTE FUNKCI 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 => cílový_lok, mezipaměť => true, dur => dbms_lob.session);DBMS_LOBMS_LOBLOMS_OPENBLODBLOD); .LOADFROMFILE(dest_lob => dest_loc, src_lob => src_loc, množství => DBMS_LOB.getLength(src_loc));DBMS_LOB.CLOSE(dest_loc);DBMS_LOB.CLOSE(src_loc);RETURN dest_loc;END file_to_blob;/ 

Nyní jste připraveni na test vložení souboru do databázové tabulky Oracle.

Zkuste vložit soubor PDF

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

Otestujte vložení souboru obrázku (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;/

Zkontrolujte záznamy v tabulce

SELECT * FROM EXT_FILES;

Výstup

Viz také:

  • Rozbalte soubor ZIP pomocí PL/SQL
  • Soubory ZIP v PL/SQL
  1. 3 způsoby, jak převést desítkové na šestnáctkové v SQL Server (T-SQL)

  2. Jaký je v databázi Oracle rozdíl mezi ROWNUM a ROW_NUMBER?

  3. vytvořte dynamický dotaz SQL pomocí knihovny psycopg2 python a pomocí dobrých nástrojů pro typ konverze

  4. MySQL SELECT posledních pár dní?