UTL_COMPRESSパッケージは、一連のデータ圧縮ユーティリティを提供します。
この章では、次の項目について説明します。
定数
例外
使用上の注意
LZ*ファンクションによって戻された一時LOBは、コール元がDBMS_LOB.FREETEMPORARYコールを使用して解放する必要があります。
LZ_COMPRESS*またはLZ_UNCOMPRESS*に渡されたBFILEは、DBMS_LOB.FILEOPENでオープンする必要があります。
特別な状況(入力がすでに圧縮されている場合)では、UTL_COMPRESSサブプログラムの1つで生成された出力が、入力と同じ大きさかまたは入力よりもわずかに大きくなることがあります。
UTL_COMPRESSで圧縮したデータの出力は、1つのファイル上のgzip(-nオプションを指定)/gunzipと互換性があります。
表249-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);