Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да вмъкна файл в базата данни на Oracle?

В този урок ще научите как да вмъкнете файл в базата данни на Oracle. Типът файл може да бъде PDF, изображение или всеки документ. Използвам типа данни BLOB в таблицата на Oracle, за да демонстрирам следния пример.

Следвайте тези стъпки, за да вмъкнете файл (PDF, изображение, Docx, Xlsx и т.н.) в BLOB колоната на Oracle Database Table

  1. Създайте таблица в схемата на база данни на Oracle с колона BLOB, както е показано в примера по-долу.
CREATE TABLE ext_files (
file_name VARCHAR2 (1000),
file_content BLOB)
/
  1. След това създайте обект на директория на база данни, откъдето искате да вмъкнете файловете, както е показано в примера по-долу.
CREATE OR REPLACE DIRECTORY PDF_FILES As 'C:\my_pdf_files';
  1. Сега създайте следната функция, за да конвертирате файл в BLOB тип данни. Но се уверете, че сте променили името на директорията PDF_FILES във функцията по-долу с името, което сте създали на обекта на директорията.
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;
/
_loc;END

Сега сте готови за теста за вмъкване на файл в таблицата на базата данни на Oracle.

Тест за вмъкване на PDF файл

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

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

COMMIT;
END;
/

Тест за вмъкване на файл с изображение (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;
/

Проверете таблицата за записи

SELECT * FROM EXT_FILES;

Изход

Вижте също:

  • Разархивирайте ZIP файл с помощта на PL/SQL
  • ZIP файлове в 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. Oracle SQL Часове Разлика между датите в ЧЧ:ММ:СС

  2. Разбиране на псевдонима на Oracle – защо псевдонимът не се разпознава в заявка, освен ако не е обвит във втора заявка?

  3. Изваждане на дати в Oracle - числови или интервални тип данни?

  4. Trunc поле за дата в mysql като Oracle

  5. Грешка при изключване на Oracle ORA-01033