21.6 ZIPファンクション

このファンクションは、ファイルのリスト(通常はAPEX_EXPORTルーチンのいずれかから取得)を、.zipアーカイブを含む単一のBLOBに圧縮します。結果となる.zipファイル内のすべてのテキスト・コンテンツは、UTF-8としてエンコードされます。

アプリケーション・エクスポートでファイルが誤って上書きされないように、アーカイブ内のすべてのファイルの名前を一意にする必要があります(そうでない場合は、例外が発生します)。

結果となるアーカイブに、単純なREADME.txtファイルやライセンス情報などのその他のファイル(p_extra_files)を追加することもできます。

構文

APEX_EXPORT.ZIP (
    p_source_files  apex_t_export_files,
    p_extra_files   apex_t_export_files DEFAULT apex_t_export_files() )
    RETURN BLOB;

パラメータ

表21-6 ZIPのパラメータ

パラメータ 説明
p_source_files ファイルの表。たとえば、apex_export.get_applicationからのもの。
p_extra_files 結果となる.zipアーカイブに追加する他のオプションのファイル。

戻り値

このファンクションは、圧縮されたアプリケーション・ファイルと追加ファイルを含むBLOBをZIP形式で返します。

DECLARE
  l_source_files apex_t_export_files;
  l_extra_files apex_t_export_files;
  l_zip blob;
BEGIN
  l_source_files := apex_export.get_application(
    p_application_id => 100,
    p_split => true );

  l_extra_files := apex_t_export_files(
    apex_t_export_file(
      name => 'README.md',
      contents => 'An example exported application.' ),
    apex_t_export_file(
      name => 'LICENSE.txt',
      contents => 'The Universal Permissive License (UPL), Version 1.0' ) );

  l_zip := apex_export.zip(
    p_source_files => l_source_files,
    p_extra_files => l_extra_files );

    sys.dbms_output.put_line(
      'Compressed application export to zip of size; '
      || sys.dbms_lob.getLength( l_zip ) );
END;