PL/SQL Packages and Types Reference 10g Release 1 (10.1) Part Number B10802-01 |
|
|
View PDF |
The UTL_COMPRESS
package provides a set of data compression utilities.
This chapter contains the following topics:
Define max number of handles for piecewise operations:
UTLCOMP_MAX_HANDLE CONSTANT PLS_INTEGER := 5;
LOB
returned by the LZ
* functions with DBMS_LOB.FREETEMPORARY
call.BFILE
passed into LZ_COMPRESS
* or lZ_UNCOMPRESS
* has to be opened by DBMS_LOB.FILEOPEN
.UTL_COMPRESS
subprograms may be the same size, or even slightly larger than, the input.UTL_COMPRESS
compressed data is compatible with gzip
(with -n
option)/gunzip
on a single file.This function checks to see if the handle to a piecewise (un)compress context is open or closed.
UTL_COMPRESS.ISOPEN( handle in binary_integer) RETURN BOOLEAN;
Parameter | Description |
---|---|
|
The handle to a piecewise uncompress context. |
TRUE
if the given piecewise handle is opened, otherwise FALSE
.
IF (UTL_COMPRESS.ISOPEN(myhandle) = TRUE) then UTL_COMPRESS.LZ_COMPRESS_CLOSE(myhandle, lob_1); END IF;
Alternatively:
IF (UTL_COMPRESS.ISOPEN(myhandle) = TRUE) THEN UTL_COMPRESS.LZ_UNCOMPRESS_CLOSE(myhandle); END IF;
These functions and procedures compress data using Lempel-Ziv compression algorithm.
This function accept a RAW
as input, compress it and return the compressed RAW
result and metadata:
UTL_COMPRESS.LZ_COMPRESS ( src IN RAW, quality IN BINARY_INTEGER DEFAULT 6) RETURN RAW;
This function accept a BLOB
as input, compress it and returns a temporary BLOB for the compressed data:
UTL_COMPRESS.LZ_COMPRESS ( src IN BLOB, quality IN BINARY_INTEGER DEFAULT 6) RETURN BLOB;
This procedure returns the compressed data into the existing BLOB(dst) which is trimmed to the compressed data size:
UTL_COMPRESS.LZ_COMPRESS ( src IN BLOB, dst IN OUT NOCOPY BLOB, quality IN BINARY_INTEGER DEFAULT 6);
This function returns a temporary BLOB
for the compressed data:
UTL_COMPRESS.LZ_COMPRESS ( src IN BFILE, quality IN BINARY_INTEGER DEFAULT 6) RETURN BLOB;
This procedure will return the compressed data into the existing BLOB(dst) which is trimmed to the compressed data size:
UTL_COMPRESS.LZ_COMPRESS ( src IN BFILE, dst IN OUT NOCOPY BLOB, quality IN BINARY_INTEGER DEFAULT 6);
Parameter | Description |
---|---|
|
Data ( |
|
Destination for compressed data |
|
An integer in the range 1 to 9, 1=fast compression, 9=best compression, default=6 |
quality
is an optional compression tuning value. It allows the UTL_COMPRESS
user to choose between speed and compression quality, meaning the percentage of reduction in size. A faster compression speed will result in less compression of the data. A slower compression speed will result in more compression of the data. Valid values are [1..9], with 1=fastest and 9=slowest. The default 'quality' value is 6.This procedure adds a piece of compressed data.
UTL_COMPRESS.LZ_COMPRESS_ADD ( handle IN BINARY_INTEGER, dst IN OUT NOCOPY BLOB, src IN RAW);
Parameter | Description |
---|---|
|
The handle to a piecewise compress context. |
|
The opened |
|
The input data to be compressed. |
invalid_handle
- out of range invalid or unopened handle.invalid_argument
- NULL
handle, src, dst, or invalid dst
.This procedure closes and finishes piecewise compress operation.
UTL_COMPRESS.LZ_COMPRESS_CLOSE ( handle IN BINARY_INTEGER, dst IN OUT NOCOPY BLOB);
Parameter | Description |
---|---|
|
The handle to a piecewise compress context. |
|
The opened LOB from LZ_COMPRESS_OPEN to store compressed data. |
invalid_handle
- out of range invalid or uninitialized handle.invalid_argument
- NULL handle, dst
, or invalid dst
.This function initializes a piecewise context that maintains the compress state and data.
UTL_COMPRESS.LZ_COMPRESS_OPEN ( dst IN OUT NOCOPY BLOB, quality IN BINARY_INTEGER DEFAULT 6) RETURN BINARY_INTEGER;
Parameter | Description |
---|---|
|
User supplied LOB to store compressed data. |
|
Speed versus efficiency of resulting compressed output. |
A handle to an initialized piecewise compress context.
invalid_handle
- invalid handle, too many open handles.invalid_argument
- NULL
dst
or invalid quality specified.Close the opened handle with LZ_COMPRESS_CLOSE
because lack of doing so will cause these handles to leak.
This procedure accepts as input a RAW
, BLOB
or BFILE
compressed string, verifies it to be a valid compressed value, uncompresses it using Lempel-Ziv compression algorithm, and returns the uncompressed RAW or BLOB
result.
This function returns uncompressed data as RAW
:
UTL_COMPRESS.LZ_UNCOMPRESS( src IN RAW) RETURN RAW;
This function returns uncompressed data as a temporary BLOB
:
UTL_COMPRESS.LZ_UNCOMPRESS( src IN BLOB) RETURN BLOB;
This procedure returns the uncompressed data into the existing BLOB
(dst
), which will be trimmed to the uncompressed data size:
UTL_COMPRESS.LZ_UNCOMPRESS( src IN BLOB, dst IN OUT NOCOPY BLOB);
This function returns a temporary BLOB for the uncompressed data:
UTL_COMPRESS.LZ_UNCOMPRESS( src IN BFILE) RETURN BLOB;
This procedure returns the uncompressed data into the existing BLOB
(dst
). The original dst
data will be overwritten.
UTL_COMPRESS.LZ_UNCOMPRESS( src IN BFILE, dst IN OUT NOCOPY BLOB);
Parameter | Description |
---|---|
|
Compressed data. |
|
Destination for uncompressed data. |
This procedure extracts a piece of uncompressed data.
UTL_COMPRESS.LZ_UNCOMPRESS_EXTRACT( handle IN BINARY_INTEGER, dst OUT NOCOPY RAW);
Parameter | Description |
---|---|
|
The handle to a piecewise uncompress context. |
|
The uncompressed data. |
no_data_found
- finished uncompress.invalid_handle
- out of range invalid or uninitialized handle.invalid_argument
- NULL handle.This function initializes a piecewise context that maintains the uncompress state and data.
UTL_COMPRESS.LZ_UNCOMPRESS_OPEN( src IN BLOB) RETURN BINARY_INTEGER;
Parameter | Description |
---|---|
|
The input data to be uncompressed. |
A handle to an initialized piecewise compress context.
Close the opened handle with LZ_UNCOMPRESS_CLOSE
because lack of doing so will cause these handles to leak.
This procedure closes and finishes the piecewise uncompress.
UTL_COMPRESS.LZ_UNCOMPRESS_CLOSE( handle IN BINARY_INTEGER);
Parameter | Description |
---|---|
|
The handle to a piecewise uncompress context. |