Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak wstawić plik do bazy danych Oracle?

W tym samouczku dowiesz się, jak wstawić plik do bazy danych Oracle. Typ pliku może być plikiem PDF, obrazem lub dowolnym dokumentem. Używam typu danych BLOB w tabeli Oracle, aby zademonstrować następujący przykład.

Wykonaj następujące kroki, aby wstawić plik (PDF, obraz, Docx, Xlsx itp.) do kolumny BLOB tabeli bazy danych Oracle

  1. Utwórz tabelę w schemacie bazy danych Oracle z kolumną BLOB, jak pokazano w poniższym przykładzie.
CREATE TABLE ext_files (
file_name VARCHAR2 (1000),
file_content BLOB)
/
  1. Następnie utwórz obiekt katalogu bazy danych, z którego chcesz wstawić pliki, jak pokazano w poniższym przykładzie.
CREATE OR REPLACE DIRECTORY PDF_FILES As 'C:\my_pdf_files';
  1. Teraz utwórz następującą funkcję, aby przekonwertować plik na typ danych BLOB. Ale upewnij się, że zmieniłeś nazwę katalogu PDF_FILES w poniższej funkcji na nazwę, którą utworzyłeś obiekt katalogu.
CREATE OR REPLACE FUNCTION file_to_blob(p_file_name VARCHAR2) RETURN BLOB AS
dest_loc BLOB := empty_blob();
src_loc BFILE := BFILENAME('PDF_FILES', p_file_name);
BEGIN
DBMS_LOB.OPEN(src_loc, DBMS_LOB.LOB_READONLY);

DBMS_LOB.CREATETEMPORARY(
lob_loc => dest_loc
, cache => true
, dur => dbms_lob.session
);

DBMS_LOB.OPEN(dest_loc, DBMS_LOB.LOB_READWRITE);

DBMS_LOB.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 dest_loc;
END file_to_blob;
/

Teraz jesteś gotowy do testu, aby wstawić plik do tabeli bazy danych Oracle.

Test wstawiania pliku PDF

DECLARE
v_blob BLOB;
BEGIN
v_blob := file_to_blob ('emp.pdf');

INSERT INTO ext_files
VALUES ('emp.pdf', v_blob);

COMMIT;
END;
/

Test wstawiania pliku obrazu (JPG)

DECLARE
v_blob BLOB;
BEGIN
v_blob := file_to_blob ('oracle-18c-install-step-1.JPG');

INSERT INTO ext_files
VALUES ('oracle-18c-install-step-1.JPG', v_blob);

COMMIT;
END;
/

Sprawdź rekordy w tabeli

SELECT * FROM EXT_FILES;

Wyjście

Zobacz też:

  • Rozpakuj plik ZIP za pomocą PL/SQL
  • Pliki ZIP w PL/SQL
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak uzyskać nazwę dnia z daty w Oracle?

  2. Pytanie PreparedStatement w Javie przeciwko Oracle

  3. 2 funkcje, aby uzyskać rok z daty w Oracle

  4. Tworzenie spłaszczonej tabeli/widoku hierarchicznie zdefiniowanego zestawu danych

  5. Błąd podczas używania pliku oracle.dataaccess.dll