UTL_COMPRESS
パッケージは、一連のデータ圧縮ユーティリティを提供します。
この章では、次の項目について説明します。
定数
例外
使用上の注意
LZ
*ファンクションによって戻された一時LOB
は、コール元がDBMS_LOB.FREETEMPORARY
コールを使用して解放する必要があります。
LZ_COMPRESS
*またはLZ_UNCOMPRESS
*に渡されたBFILE
は、DBMS_LOB.FILEOPEN
でオープンする必要があります。
特別な状況(入力がすでに圧縮されている場合)では、UTL_COMPRESS
サブプログラムの1つで生成された出力が、入力と同じ大きさかまたは入力よりもわずかに大きくなることがあります。
UTL_COMPRESS
で圧縮したデータの出力は、1つのファイル上のgzip
(-n
オプションを指定)/gunzip
と互換性があります。
表222-2 UTL_COMPRESSパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
|
ピース単位の圧縮(または圧縮解除)コンテキストに対するハンドルが、オープンしているかクローズしているかどうかを確認します。 |
|
Lempel-Ziv圧縮アルゴリズムを使用してデータを圧縮します。 |
|
1つの圧縮データを追加します。 |
|
ピース単位の圧縮操作をクローズして終了します。 |
|
圧縮状態とデータを保持するピース単位のコンテキストを初期化します。 |
|
圧縮された入力を受け入れ、有効であることを確認して圧縮を解除します。 |
|
1つの圧縮解除データを抽出します。 |
|
圧縮解除状態とデータを保持するピース単位のコンテキストを初期化します。 |
|
ピース単位の圧縮解除をクローズして終了します。 |
このファンクションおよびプロシージャでは、Lempel-Ziv圧縮アルゴリズムを使用してデータを圧縮します。
構文
次のファンクションは、RAW
を入力として使用し、圧縮して、圧縮後のRAW
の結果とメタデータを戻します。
UTL_COMPRESS.LZ_COMPRESS ( src IN RAW, quality IN BINARY_INTEGER DEFAULT 6) RETURN RAW;
次のファンクションは、BLOB
を入力として使用し、圧縮して、圧縮後のデータの一時BLOBを戻します。
UTL_COMPRESS.LZ_COMPRESS ( src IN BLOB, quality IN BINARY_INTEGER DEFAULT 6) RETURN BLOB;
次のプロシージャは、圧縮後のデータを、圧縮後のデータ・サイズにトリミングした既存のBLOB(dst)に戻します。
UTL_COMPRESS.LZ_COMPRESS ( src IN BLOB, dst IN OUT NOCOPY BLOB, quality IN BINARY_INTEGER DEFAULT 6);
次のファンクションは、圧縮後のデータの一時BLOB
を戻します。
UTL_COMPRESS.LZ_COMPRESS ( src IN BFILE, quality IN BINARY_INTEGER DEFAULT 6) RETURN BLOB;
次のプロシージャは、圧縮後のデータを、圧縮後のデータ・サイズにトリミングした既存のBLOB(dst)に戻します。
UTL_COMPRESS.LZ_COMPRESS ( src IN BFILE, dst IN OUT NOCOPY BLOB, quality IN BINARY_INTEGER DEFAULT 6);
このファンクションは、圧縮状態とデータを保持するピース単位のコンテキストを初期化します。
構文
UTL_COMPRESS.LZ_COMPRESS_OPEN ( dst IN OUT NOCOPY BLOB, quality IN BINARY_INTEGER DEFAULT 6) RETURN BINARY_INTEGER;
このプロシージャは、RAW
、BLOB
またはBFILE
で圧縮された文字列を入力として使用し、有効な圧縮値であることを検証し、Lempel-Ziv圧縮アルゴリズムを使用して圧縮を解除して、圧縮を解除したRAWまたはBLOB
の結果を戻します。
構文
次のファンクションは、圧縮解除後のデータをRAW
として戻します。
UTL_COMPRESS.LZ_UNCOMPRESS( src IN RAW) RETURN RAW;
次のファンクションは、圧縮解除後のデータを一時BLOB
として戻します。
UTL_COMPRESS.LZ_UNCOMPRESS( src IN BLOB) RETURN BLOB;
次のプロシージャは、圧縮解除後のデータを既存のBLOB
(dst
)に戻します。BLOBは圧縮解除後のデータ・サイズにトリミングされます。
UTL_COMPRESS.LZ_UNCOMPRESS( src IN BLOB, dst IN OUT NOCOPY BLOB);
次のファンクションは、圧縮解除後のデータの一時BLOBを戻します。
UTL_COMPRESS.LZ_UNCOMPRESS( src IN BFILE) RETURN BLOB;
次のプロシージャは、圧縮解除後のデータを既存のBLOB
(dst
)に戻します。元のdst
のデータは上書きされます。
UTL_COMPRESS.LZ_UNCOMPRESS( src IN BFILE, dst IN OUT NOCOPY BLOB);