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

Oracle BLOB đến base64 CLOB

Hàm này có từ đây nên thực hiện công việc.

CREATE OR REPLACE FUNCTION base64encode(p_blob IN BLOB)
  RETURN CLOB
-- -----------------------------------------------------------------------------------
-- File Name    : http://oracle-base.com/dba/miscellaneous/base64encode.sql
-- Author       : Tim Hall
-- Description  : Encodes a BLOB into a Base64 CLOB.
-- Last Modified: 09/11/2011
-- -----------------------------------------------------------------------------------
IS
  l_clob CLOB;
  l_step PLS_INTEGER := 12000; -- make sure you set a multiple of 3 not higher than 24573
BEGIN
  FOR i IN 0 .. TRUNC((DBMS_LOB.getlength(p_blob) - 1 )/l_step) LOOP
    l_clob := l_clob || UTL_RAW.cast_to_varchar2(UTL_ENCODE.base64_encode(DBMS_LOB.substr(p_blob, l_step, i * l_step + 1)));
  END LOOP;
  RETURN l_clob;
END;
/

Sau đó, bản cập nhật có thể trông giống như

UPDATE test SET imageBase64 = base64encode(image);

Lưu ý rằng có thể hàm nên được tối ưu hóa bằng hàm DBMS_LOB.APPEND thay vì toán tử nối đó. Hãy thử điều đó nếu bạn gặp vấn đề về hiệu suất.



  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 để trích xuất định dạng ngày từ một oracle chuỗi

  2. Ví dụ về Java trong Cơ sở dữ liệu Oracle

  3. Tại sao tên bảng / cột / chỉ mục của Oracle bị giới hạn trong 30 ký tự?

  4. java.sql.SQLRecoverableException - kết nối lại từ jdbc

  5. Làm thế nào để sử dụng jmeter để kiểm tra một Thủ tục lưu trữ Oracle với kiểu trả về sys_refcursor?