CREATE OR REPLACE PACKAGE LOB_UTL_PCKG  
IS  
  FUNCTION BLOBREPLACE (p_blob BLOB, p_what VARCHAR2, p_with_what VARCHAR2) RETURN BLOB; 
  FUNCTION BLOB2CLOB (p_blob BLOB) RETURN CLOB; 
  FUNCTION CLOB2BLOB (p_clob CLOB) RETURN BLOB; 
END; 
/  
CREATE OR REPLACE PACKAGE BODY LOB_UTL_PCKG 
IS  
  FUNCTION BLOBREPLACE (p_blob BLOB, p_what VARCHAR2, p_with_what VARCHAR2)  RETURN BLOB 
  IS   
   BEGIN 
     RETURN CLOB2BLOB( REPLACE(BLOB2CLOB(p_blob), p_what, p_with_what) ); 
  END BLOBREPLACE; 
------------------------------ BLOB2CLOB ------------------------- 
  FUNCTION BLOB2CLOB (p_blob in BLOB) RETURN CLOB 
  IS 
   v_clob     CLOB; 
   dest_offset  INTEGER := 1; 
   src_offset   INTEGER := 1;  
   lang_context  INTEGER := DBMS_LOB.DEFAULT_LANG_CTX; 
   warning    INTEGER;  
  BEGIN 
   DBMS_LOB.CREATETEMPORARY ( v_clob, TRUE ); 
   DBMS_LOB.CONVERTTOCLOB( 
     v_clob, 
     p_blob, 
     DBMS_LOB.LOBMAXSIZE, 
     dest_offset, 
     src_offset,  
     DBMS_LOB.DEFAULT_CSID, 
     lang_context, 
     warning 
   );  
   RETURN v_clob; 
  END BLOB2CLOB; 
  ------------------------------ CLOB2BLOB ------------------------- 
  FUNCTION CLOB2BLOB (p_clob CLOB) RETURN BLOB 
  AS 
   l_blob     BLOB; 
   l_dest_offset  INTEGER := 1; 
   l_source_offset INTEGER := 1; 
   l_warning    INTEGER; 
   lang_context  INTEGER := DBMS_LOB.DEFAULT_LANG_CTX; 
  BEGIN 
   DBMS_LOB.CREATETEMPORARY(l_blob, TRUE); 
   DBMS_LOB.CONVERTTOBLOB( 
     l_blob, 
     p_clob, 
     DBMS_LOB.LOBMAXSIZE, 
     l_dest_offset, 
     l_source_offset, 
     DBMS_LOB.DEFAULT_CSID, 
     lang_context, 
     l_warning 
   ); 
   RETURN l_blob; 
  END CLOB2BLOB; 
END;  
/ 
Friday, March 30, 2012
REPLACE function for BLOB fields in Oracle
This post is about how you can REPLACE text content in a BLOB field in Oracle. This can be a very useful when you require to do string replacements in BLOB fields.
Subscribe to:
Comments (Atom)