3.12.11.1.9 アプリケーションのインストール

SQLスクリプトを実行して、APEXアプリケーションをターゲット環境にインストールします。

最初にインストール・コンテキスト情報を構成してからSQLスクリプトを実行すると、特殊なケースを処理できます。このトピックでは、両方のシナリオについて説明します。

3.12.11.1.9.1 ターゲット環境がソースをミラー化する場合のアプリケーションのインストール

ターゲット環境がソースをミラー化する場合のアプリケーションのインストールについて学習します。

APEXアプリケーションをソース環境から単一のSQLファイルとしてエクスポートするか、個々のSQLファイルのセットをサブディレクトリに分割してエクスポートします。同じワークスペース名、ワークスペースID、ワークスペース・スキーマ名およびアプリケーション別名を使用するターゲット環境にエクスポートをインストールするには、エクスポート・プロシージャによって作成されたSQLスクリプトをそのまま実行します。

インストールするアプリケーションによって、ターゲット環境内の同じIDのアプリケーションが上書きされます。アプリケーション・エクスポートが、選択したコンポーネントのみを含む部分エクスポートであった場合、それらのコンポーネントのみがターゲット環境で上書きされます。

エクスポートがf1234.SQLなどの単一のSQLファイルである場合は、そのスクリプトを実行してアプリケーションをインストールします。そうではなく、エクスポートで-splitオプションを使用して、サブディレクトリに編成された個々のコンポーネントSQLファイルを含むf1234などのディレクトリを作成した場合は、./f1234/install.sqlスクリプトを実行してアプリケーションをインストールします。-splitオプションを使用してコンポーネント・セットを部分的にエクスポートした場合は、./f1234/install_component.sqlスクリプトを実行します。

3.12.11.1.9.2 ターゲット環境がソースと異なる場合のアプリケーションのインストール

ターゲット環境がソースと異なる場合のアプリケーションのインストールについて学習します。

インポート先のターゲット環境で、同じワークスペース名、ワークスペースID、ワークスペース・スキーマ名およびアプリケーション別名を使用しない場合は、次の例に示すような追加ステップを実行するSQLスクリプトがアプリケーションのインストールに必要になります。

REM First setup the installation context in the target environment
begin
    -- Add necessary calls to apex_application_install package procedures here
end;
/
REM Then install the application by running its exported SQL script
REM For "split" export run @f1234/install.sql 
REM or @f1234/install_component.sql instead
@f1234.sql

インストール・コンテキストの設定

このインストール・コンテキストには次の内容が含まれます。

  • ワークスペース名(例: TARGET_WORKSPACE)

  • アプリケーションID (たとえば、5678)

  • ワークスペース・スキーマ(HRAPP_PRODなど)

  • アプリケーションの別名(たとえば、簡易URLで使用されるhrapp)

ターゲット・ワークスペースの名前またはIDが、アプリケーションのエクスポート元のワークスペースと異なる場合、インストール・スクリプトの無名ブロックにset_workspace()プロシージャへのコールを追加する必要があります。

apex_application_install.set_workspace('TARGET_WORKSPACE');

同様に、apex_application_installパッケージ・プロシージャへの他のコールは、ターゲット環境のそれらの値とアプリケーションのエクスポート元のソース環境の対応する値が異なる場合にのみ必要になります。

ターゲット環境で特定のアプリケーションIDを設定するには、次に示すように、set_application_id()へのコールをgenerate_offset()への追加のコールとともに追加します。

apex_application_install.set_application_id(5678);
apex_application_install.generate_offset();

特定のアプリケーションIDを指定するかわりに、使用可能なアプリケーションIDを生成するには、calling set_application_idのかわりにgenerate_application_idへのコールを追加します。

apex_application_install.generate_application_id;
apex_application_install.generate_offset;

インストールするアプリケーションのワークスペース・スキーマの名前を設定するには、次に示すように、set_schema()へのコールを追加します。

apex_application_install.set_schema('HRAPP_PROD');

アプリケーションの別名(簡易URLで使用)を設定するには、次に示すように、set_application_alias()プロシージャへのコールを追加します。

apex_application_install.set_application_alias('hrapp');

アプリケーションをインストールするためのSQLスクリプトの実行

この項には、単一ファイルおよび分割エクスポートのインストール・スクリプトの完全な例が含まれています。

この例では、ID 1234のアプリケーションをf1234.sqlという名前の単一ファイルに以前にエクスポートしたと想定しています。この例では、アプリケーションID 5678、ワークスペース・スキーマHRAPP_PRODおよびアプリケーション別名hrappを使用して、ワークスペースHRAPP_PRODが設定されたターゲット環境に、SQLclを使用してAPEXアプリケーションをインストールするSQLスクリプトも示しています。

REM First setup the installation context in the target environment
begin
    apex_application_install.set_workspace('TARGET_WORKSPACE');
    apex_application_install.set_application_id(5678);
    apex_application_install.generate_offset();
    apex_application_install.set_schema('HRAPP_PROD');
    apex_application_install.set_application_alias('hrapp');
end;
/
REM Then install the application by running its exported SQL script
REM For "split" export run @f1234/install.sql 
REM or @f1234/install_component.sql instead
@f1234.sql