38.5 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;

パラメータ

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

パラメータ 説明

p_zipped_blob

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

p_only_files

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

p_encoding

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

戻り値

表38-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;