Skip to main content
 

Da Clob a Blob

Questo codice PL/SQL converte una variabile clob a una blob.

function clob_to_blob(c in clob) return blob is
    -- typecasts CLOB to BLOB (binary conversion)
   pos PLS_INTEGER := 1;
   buffer RAW( 32767 );
   res BLOB;
   lob_len PLS_INTEGER := DBMS_LOB.getLength( c );
BEGIN
   DBMS_LOB.createTemporary( res, TRUE );
   DBMS_LOB.OPEN( res, DBMS_LOB.LOB_ReadWrite );
   
   LOOP
    buffer := UTL_RAW.cast_to_raw( DBMS_LOB.SUBSTR( c, 16000, pos ) );

    IF UTL_RAW.LENGTH( buffer ) > 0 THEN
       DBMS_LOB.writeAppend( res, UTL_RAW.LENGTH( buffer ), buffer );
    END IF;

    pos := pos + 16000;
    EXIT WHEN pos > lob_len;
   END LOOP;

   RETURN res;
END;

PL/SQL, Clob & Blob