Oracle PL/SQL/System Packages/UTL COMPRESS

Материал из SQL эксперт
Перейти к: навигация, поиск

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.