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
- 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) /
- 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';
- 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