Mega Code Archive

 
Categories / Oracle PLSQL / System Packages
 

UTL_COMPRESS package lets you compress and decompress binary data (RAW, BLOB, and BFILE)

SQL> SQL> SET SERVEROUTPUT ON SQL> DECLARE   2       l_original_blob      BLOB;   3       l_compressed_blob    BLOB;   4       l_uncompressed_blob  BLOB;   5       BEGIN   6       l_original_blob   :=   7       TO_BLOB(UTL_RAW.CAST_TO_RAW('1234567890123456789012   8       345678901234567890'));   9       l_compressed_blob := TO_BLOB('1');  10  11       l_uncompressed_blob := TO_BLOB('1');  12       UTL_COMPRESS.lz_compress (src => l_original_blob,  13                              dst => l_compressed_blob);  14       UTL_COMPRESS.lz_uncompress (src => l_compressed_blob,  15                                dst => l_uncompressed_blob);  16       DBMS_OUTPUT.put_line('Original Length    : ' ||  17       LENGTH(l_original_blob));  18       DBMS_OUTPUT.put_line('Compressed Length  : ' ||  19       LENGTH(l_compressed_blob));  20       DBMS_OUTPUT.put_line('Uncompressed Length: ' ||  21       LENGTH(l_uncompressed_blob));  22       DBMS_LOB.FREETEMPORARY(l_original_blob);  23       DBMS_LOB.FREETEMPORARY(l_compressed_blob);  24       DBMS_LOB.FREETEMPORARY(l_uncompressed_blob);  25       END;  26  / Original Length    : 46 Compressed Length  : 38 Uncompressed Length: 46 PL/SQL procedure successfully completed.