21.5 UNZIPファンクション

このファンクションは、zipアーカイブからすべてのファイルを抽出および解凍します。

このファンクションは、APEX_APPLICATION_INSTALLパッケージ内のルーチンでの使用を目的としており、ZIPアーカイブ内のすべてのファイルが、SQLスクリプト(拡張子が.sqlである必要がある)や単純なREADMEファイルなどのテキスト形式であることが前提となっています。

ZIPファイル内のすべてのテキスト・コンテンツは、UTF-8としてエンコードする必要があります。

構文

APEX_EXPORT.UNZIP (
    p_source_zip    IN BLOB )
    RETURN apex_t_export_file;

パラメータ

表21-5 UNZIPのパラメータ

パラメータ 説明
p_source_zip zipアーカイブを含むBLOB。

戻り値

このファンクションは、ZIPアーカイブ内の各ファイルの名前と内容(テキスト形式に変換されたもの)を含むapex_t_export_fileという表を返します。

次の例では、リモートURLからアプリケーション・アーカイブをフェッチし、その中のファイルを抽出し、含まれているアプリケーションのタイプと名前を出力します。

DECLARE
   l_zip blob;
   l_info apex_application_install.t_file_info;
BEGIN
   l_zip := apex_web_service.make_rest_request_b (
                p_url => 'https://www.example.com/apps/f100.zip',
                p_http_method => 'GET' );
   l_info := apex_application_install.get_info (
                   p_source => apex_export.unzip (
                       p_source_zip => l_zip ) );

   sys.dbms_output.put_line (
       apex_string.format (
           p_message => q'~
                        !Type ................. %0
                        !App Name ............. %1
                        !~',
           p0 => l_info.file_type,
           p1 => l_info.app_name,
           p_prefix => '!' ));
END;