Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Làm thế nào để Chèn một Tập tin trong Cơ sở dữ liệu Oracle?

Trong hướng dẫn này, bạn sẽ học cách chèn một tệp vào cơ sở dữ liệu Oracle. Loại tệp có thể là PDF, Hình ảnh hoặc bất kỳ tài liệu nào. Tôi đang sử dụng kiểu dữ liệu BLOB trong bảng Oracle để minh họa ví dụ sau.

Làm theo các bước sau để chèn tệp (PDF, hình ảnh, Docx, Xlsx, v.v.) vào cột BLOB của bảng cơ sở dữ liệu Oracle

  1. Tạo một bảng trong lược đồ cơ sở dữ liệu Oracle với một cột BLOB, như thể hiện trong ví dụ dưới đây.
 TẠO BẢNG ext_files (file_name VARCHAR2 (1000), file_content BLOB) / 
  1. Sau đó, tạo một đối tượng thư mục cơ sở dữ liệu từ nơi bạn muốn chèn tệp, như được minh họa trong ví dụ dưới đây.
 TẠO HOẶC THAY THẾ DANH MỤC PDF_FILES Dưới dạng 'C:\ my_pdf_files'; 
  1. Bây giờ, hãy tạo hàm sau để chuyển đổi tệp thành kiểu dữ liệu BLOB. Nhưng hãy đảm bảo rằng bạn thay đổi tên thư mục PDF_FILES trong hàm bên dưới bằng tên bạn đã tạo đối tượng thư mục.
 TẠO HOẶC THAY THẾ CHỨC NĂNG tệp_to_blob (p_file_name VARCHAR2) QUAY LẠI BLOB ASdest_loc BLOB:=blank_blob (); src_loc BFILE:=BFILENAME (' PDF_FILES  ', p_file_name); BEGINDBMS_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. .LOADFROMFILE (dest_lob => dest_loc, src_lob => src_loc, số lượng => DBMS_LOB.getLength (src_loc)); DBMS_LOB.CLOSE (dest_loc); DBMS_LOB.CLOSE (src_loc); RETURN dest_loc; HẾT tệp_to_blob; / 
 

Bây giờ bạn đã sẵn sàng cho thử nghiệm chèn tệp vào bảng cơ sở dữ liệu Oracle.

Kiểm tra Chèn tệp PDF

 DECLAREv_blob BLOB; BEGINv_blob:=file_to_blob ('emp.pdf'); CHÈN VÀO ext_filesVALUES ('emp.pdf', v_blob); COMMIT; END; / 

Kiểm tra Chèn tệp Hình ảnh (JPG)

 DECLAREv_blob BLOB; BEGINv_blob:=file_to_blob ('oracle-18c-install-step-1.JPG'); CHÈN VÀO ext_filesVALUES ('oracle-18c-install-step-1.JPG', v_blob); COMMIT; END; / 

Kiểm tra bảng để ghi

 CHỌN * TỪ EXT_FILES; 

Đầu ra

Xem thêm:

  • Giải nén tệp ZIP bằng PL / SQL
  • Tệp ZIP trong 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. Làm thế nào để mã hóa mật khẩu trong Oracle?

  2. Tạo CTE trong Oracle

  3. Khóa Liquibase - lý do?

  4. Làm cách nào để chèn dấu thời gian trong Oracle?

  5. Oracle:Làm thế nào để biết được có một giao dịch đang chờ xử lý hay không?