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