terça-feira, 15 de fevereiro de 2011

UTL_COMPRESS

The UTL_COMPRESS package provides an API to allow compression and decompression of binary data (RAW, BLOB and BFILE). It uses the Lempel-Ziv compression algorithm which is equivalent to functionality of the gzip utility. A simple example of it's usage would be:

 

SET SERVEROUTPUT ON

DECLARE

  l_original_blob      BLOB;

  l_compressed_blob    BLOB;

  l_uncompressed_blob  BLOB;

BEGIN

  -- Initialize both BLOBs to something.

  l_original_blob     := TO_BLOB(UTL_RAW.CAST_TO_RAW('1234567890123456789012345678901234567890'));

  l_compressed_blob   := TO_BLOB('1');

  l_uncompressed_blob := TO_BLOB('1');

 

  -- Compress the data.

  UTL_COMPRESS.lz_compress (src => l_original_blob,

                            dst => l_compressed_blob);

 

  -- Uncompress the data.

  UTL_COMPRESS.lz_uncompress (src => l_compressed_blob,

                              dst => l_uncompressed_blob);

 

  -- Display lengths.

  DBMS_OUTPUT.put_line('Original Length    : ' || LENGTH(l_original_blob));

  DBMS_OUTPUT.put_line('Compressed Length  : ' || LENGTH(l_compressed_blob));

  DBMS_OUTPUT.put_line('Uncompressed Length: ' || LENGTH(l_uncompressed_blob));

 

  -- Free temporary BLOBs.            

  DBMS_LOB.FREETEMPORARY(l_original_blob);

  DBMS_LOB.FREETEMPORARY(l_compressed_blob);

  DBMS_LOB.FREETEMPORARY(l_uncompressed_blob);

END;

/

Fonte: http://www.oracle-base.com/articles/10g/PlsqlEnhancements10g.php

Nenhum comentário :

Postar um comentário

Related Posts Plugin for WordPress, Blogger...