プライマリ・コンテンツに移動
Oracle® Application Express APIリファレンス
リリース5.0
E67397-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

28 APEX_ZIP

このパッケージは、ファイルの圧縮および解凍を管理します。

データ型

この項では、APEX_ZIPパッケージで使用するデータ型について説明します。

t_files

type t_files is table of varchar2(32767) index by binary_integer;

ADD_FILEプロシージャ

このプロシージャは、単一のファイルをzipファイルに追加します。


注意:

すべてのファイルを追加した後に、APEX_ZIP.FINISHをコールする必要があります。

構文

APEX_ZIP.ADD_FILE (
    p_zipped_blob IN OUT NOCOPY BLOB,
    p_file_name   IN VARCHAR2,
    p_content     IN BLOB );

パラメータ

表28-1 ADD_FILEプロシージャのパラメータ

パラメータ 説明

p_zipped_blob

zipファイルを格納しているBLOB。

p_file_name

zipファイルに追加するファイルのファイル名(パスを含む)。

p_content

ファイルを格納しているBLOB。


この例では、表から複数のファイルを読み取り、単一のzipファイルに格納します。

declare
    l_zip_file blob;
begin
    for l_file in ( select file_name,
                            file_content
                       from my_files )
    loop
        apex_zip.add_file (
            p_zipped_blob => l_zip_file,
            p_file_name   => l_file.file_name,
            p_content     => l_file.file_content );
    end loop;

    apex_zip.finish (
        p_zipped_blob => l_zip_file );

end;

FINISHプロシージャ

このプロシージャは、APEX_ZIP.ADD_FILEでファイルを追加した後に、zipファイルの作成を完了します。

構文

APEX_ZIP.FINISH (
    p_zipped_blob IN OUT NOCOPY BLOB );

パラメータ

表28-2 FINISHプロシージャのパラメータ

パラメータ 説明

p_zipped_blob

zipファイルを格納しているBLOB。


例は、「ADD_FILEプロシージャ」を参照してください。

GET_FILE_CONTENTファンクション

このファンクションは、指定されたzipファイルに格納されたファイルのBLOBを戻します。

構文

APEX_ZIP.GET_FILE_CONTENT (
    p_zipped_blob IN BLOB,
    p_file_name   IN VARCHAR2,
    p_encoding    IN VARCHAR2 DEFAULT NULL )
RETURN BLOB;

パラメータ

表28-3 GET_FILE_CONTENTファンクションのパラメータ

パラメータ 説明

p_zipped_blob

これはzipファイルを格納しているBLOBです。

p_file_name

zipファイルに含まれるファイルのファイル名(パスを含む)。

p_encoding

ファイルの圧縮に使用されるエンコーディング。


戻り値

表28-4 GET_FILE_CONTENTファンクションの戻り値

戻り値 説明

BLOB

zipファイルを格納しているBLOB。


例は、「GET_FILESファンクション」を参照してください。

GET_FILESファンクション

このファンクションは、BLOBを格納している指定されたzipファイルのファイル名(パスを含む)の配列を戻します。

構文

APEX_ZIP.GET_FILES (
    p_zipped_blob IN BLOB,
    p_only_files  IN BOOLEAN DEFAULT TRUE,
    p_encoding    IN VARCHAR2 DEFAULT NULL )
RETURN t_files;

パラメータ

表28-5 GET_FILESファンクションのパラメータ

パラメータ 説明

p_zipped_blob

これはBLOBを格納しているzipファイルです。

p_only_files

TRUEに設定すると、戻された配列に空のディレクトリ・エントリが含まれません。FALSEに設定すると、空のディレクトリ・エントリが含まれます。

p_encoding

これはファイルの圧縮に使用されるエンコーディングです。


戻り値

表28-6 GET_FILESファンクションの戻り値

戻り値 説明

t_files

ファイルの名前とパスの表。詳細は、「データ型」を参照してください。


この例では、表からzipファイルを読み取り、解凍してzipファイルの全ファイルをmy_filesに格納します。

declare
    l_zip_file      blob;
    l_unzipped_file blob;
    l_files         apex_zip.t_files;
begin
    select file_content
        into l_zip_file
        from my_zip_files
    where file_name = 'my_file.zip';

    l_files := apex_zip.get_files (
            p_zipped_blob => l_zip_file );

    for i in 1 .. l_files.count loop
        l_unzipped_file := apex_zip.get_file_content (
            p_zipped_blob => l_zip_file,
            p_file_name   => l_files(i) );

        insert into my_files ( file_name, file_content )
        values ( l_files(i), l_unzipped_file );
    end loop;
end;