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

Oracle BLOB към base64 CLOB

Тази функция получи от тук трябва да свърши работа.

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

Тогава актуализацията може да изглежда така

UPDATE test SET imageBase64 = base64encode(image);

Имайте предвид, че може би функцията трябва да бъде оптимизирана с функцията DBMS_LOB.APPEND вместо този оператор за конкатенация. Опитайте това, ако имате проблеми с производителността.



  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 PLSQL въпроси за интервю

  2. Извикване на Oracle PL/SQL PLS-00201:идентификаторът „001“ трябва да бъде деклариран

  3. JProgressBar не се актуализира, не може да намери следа

  4. SQL:Как бихте разделили 100 000 записа от таблица на Oracle на 5 части?

  5. Създайте списък с всички месеци от колона с дата в ORACLE SQL