Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Oracle BLOB ke base64 CLOB

Fungsi ini mendapatkan dari sini harus melakukan pekerjaan itu.

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

Maka pembaruan dapat terlihat seperti

UPDATE test SET imageBase64 = base64encode(image);

Perhatikan bahwa mungkin fungsi tersebut harus dioptimalkan dengan fungsi DBMS_LOB.APPEND alih-alih operator rangkaian itu. Cobalah jika Anda memiliki masalah kinerja.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Referensi ke koleksi PL/SQL yang tidak diinisialisasi

  2. Bagaimana cara memilih hanya 1 baris dari Oracle sql?

  3. Tidak dapat menjalankan kueri pemilihan dinamis besar dalam prosedur tersimpan

  4. Bagaimana Mendapatkan Nilai ASCII di Oracle?

  5. Konversi dari ANSI ke Oracle Join Syntax