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