このパッケージは、ファイルの圧縮および解凍を管理します。
このプロシージャは、単一のファイルを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プロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
zipファイルを格納しているBLOB。 |
|
zipファイルに追加するファイルのファイル名(パスを含む)。 |
|
ファイルを格納している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;
このプロシージャは、APEX_ZIP.ADD_FILE
でファイルを追加した後に、zipファイルの作成を完了します。
構文
APEX_ZIP.FINISH ( p_zipped_blob IN OUT NOCOPY BLOB );
パラメータ
例
例は、「ADD_FILEプロシージャ」を参照してください。
このファンクションは、指定された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ファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
これはzipファイルを格納しているBLOBです。 |
|
zipファイルに含まれるファイルのファイル名(パスを含む)。 |
|
ファイルの圧縮に使用されるエンコーディング。 |
戻り値
例
例は、「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ファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
これはBLOBを格納しているzipファイルです。 |
|
|
|
これはファイルの圧縮に使用されるエンコーディングです。 |
戻り値
例
この例では、表から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;