PL/SQl verbeteringen in Oracle 10g - UTL_COMPRESS

Met de UTL_COMPRESS package komt er een API mee die het mogelijk maakt om compressie en decompressie van binaire data(RAW, BLOB en BFILE) toe te passen.

Het gebruikt het Lempel-Ziv compressie algoritme wat functioneel gelijkwaardig is aan de gzip utility. Een simpel voorbeeld van het gebruik:

 

 

SET SERVEROUTPUT ON
DECLARE
l_original_blob BLOB;
l_compressed_blob BLOB;
l_uncompressed_blob BLOB;
BEGIN
-- Initialiseer beide BLOBs naar iets.
l_original_blob := TO_BLOB(UTL_RAW.CAST_TO_RAW('1234567890123456789012345678901234567890'));
l_compressed_blob := TO_BLOB('1');
l_uncompressed_blob := TO_BLOB('1');

-- Compress de data.
UTL_COMPRESS.lz_compress (src => l_original_blob,
dst => l_compressed_blob);

-- Uncompress de data.
UTL_COMPRESS.lz_uncompress (src => l_compressed_blob,
dst => l_uncompressed_blob);

-- Laat de lengte zien.
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 tijdelijke BLOBs.
DBMS_LOB.FREETEMPORARY(l_original_blob);
DBMS_LOB.FREETEMPORARY(l_compressed_blob);
DBMS_LOB.FREETEMPORARY(l_uncompressed_blob);
END;
/
 

Advertentie

>

Poll

Voorkeur
 

Wie is er aanwezig

We hebben 168 gasten online