Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Oracle BLOB do base64 CLOB

Ta funkcja została pobrana stąd powinien wykonać swoją pracę.

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

Wtedy aktualizacja może wyglądać tak

UPDATE test SET imageBase64 = base64encode(image);

Zauważ, że być może funkcja powinna być zoptymalizowana za pomocą funkcji DBMS_LOB.APPEND zamiast tego operatora konkatenacji. Spróbuj tego, jeśli masz problemy z wydajnością.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Połącz wyniki z zapytania SQL w Oracle

  2. Zainstaluj Oracle SQL Developer 19.1 w systemie Mac OS z JDK 8

  3. Czy Parallel Hint w ramach Dynamic SQL firmy Oracle działa równolegle?

  4. Aplikacja VB6 Oracle 12 64-bitowe połączenie

  5. Ustaw wygaśnięcie/okres karencji hasła użytkownika Oracle