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;
親トピック: APEX_ZIP