62.4 GET_DIR_ENTRIESファンクション

このファンクションは、指定されたZIPファイル内の各ファイルに関する情報を含むディレクトリ・エントリの表を戻します。戻されるレコードの表は、ファイル名(パスを含む)によって索引付けされます。

構文

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

パラメータ

パラメータ 説明
p_zipped_blob ZIPファイルを格納しているBLOB。
p_only_files ディレクトリのリストでは、ディレクトリではなくファイルのみを戻します。
p_encoding ファイルの圧縮に使用されるエンコーディング。

戻り値

ディレクトリ・エントリの表。

次の例では、表からZIPファイルを読み取って抽出し、ZIPファイルのすべてのファイルをmy_filesに格納します。

DECLARE
    l_zip_file      blob;
    l_unzipped_file blob;
    l_dir           apex_zip.t_dir_entries;
    l_file_path     varchar2(32767);
BEGIN
    SELECT file_content
      INTO l_zip_file
      FROM my_zip_files
     WHERE file_name = 'my_file.zip';

    l_dir := apex_zip.get_dir_entries (
                   p_zipped_blob => l_zip_file );

    l_file_path := l_dir.first;
    WHILE l_file_path IS NOT NULL LOOP
        l_unzipped_file := apex_zip.get_file_content (
                               p_zipped_blob => l_zip_file,
                               p_dir_entry   => l_dir(l_file_path) );

        INSERT INTO my_files ( file_name, file_content )
        values ( l_file_path, l_unzipped_file );

        l_file_path := l_dir.next(l_file_path);
    END LOOP;
END;