ヘッダーをスキップ
Oracle® Application Express APIリファレンス
リリース4.2 for Oracle Database 12c
B71340-03
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

2 APEX_APPLICATION_INSTALL

APEX_APPLICATION_INSTALLパッケージには、Application Expressアプリケーションのインストール・プロセス中にアプリケーション属性を変更するためのメソッドが多数用意されています。

トピック:

パッケージの概要

Oracle Application ExpressでApplication Expressインスタンスにアプリケーションをインポートする場合、次の2つの方法があります。

  1. アプリケーションのエクスポート・ファイルをアップロードおよびインストールする(Application ExpressのWebインタフェースを使用)。

  2. アプリケーションのエクスポート・ファイルをSQLスクリプトとして実行する(通常は、コマンドライン・ユーティリティのSQL*Plusで実行)。

Application ExpressのWebインタフェースのファイル・アップロード機能を使用すると、開発者は異なるアプリケーションID、異なるワークスペースIDおよび異なる解析スキーマでアプリケーションをインポートできます。ただし、SQL*Plusなどのコマンドライン・ツールを使用してアプリケーションをインポートする場合は、アプリケーションのエクスポート・ファイルを直接変更しないかぎり、これらの属性(アプリケーションID、ワークスペースID、解析スキーマ)を変更することはできません。

コマンドライン・ユーティリティまたは非Webベースのインストーラによるデプロイを意図されたアプリケーションの作成が多くなると、Application Expressユーザーは、いずれのApplication Expressインスタンスの任意のワークスペースにアプリケーションをどのようにインポートするかという課題に直面します。

もう1つの一般的なシナリオとして、トレーニング・クラスがあり、50の異なるワークスペースへのアプリケーションのインストールに、すべて同じアプリケーション・エクスポート・ファイルを使用します。ユーザーは、現在は、アプリケーションのエクスポート・ファイルにユーザー独自のグローバル変数を追加し、、インストール時にこれらのグローバルの値を変更することで対処しています。ただし、このようにアプリケーションのエクスポート・ファイルの手動による変更(通常はエクスポート後にsedまたはawkスクリプトを実行)は、不要であるべきです。

Application Express 4.0以上には、APEX_APPLICATION_INSTALL APIが含まれます。このPL/SQL APIには、Application Expressアプリケーション・インストール・プロセス中にアプリケーション属性を設定するためのメソッドが多数用意されています。Application Express 4.0以上のすべてのエクスポート・ファイルには、APEX_APPLICATION_INSTALL APIで設定された値への参照が含まれています。ただし、このAPIのメソッドはデフォルトのアプリケーション・インストール動作をオーバーライドするためにのみ使用します。

APEX_APPLICATION_INSTALLで操作する属性

下の表は、このAPIのファンクションによって設定できる属性を示しています。

表2-1 APEX_APPLICATION_INSTALL APIで操作する属性

属性 説明

ワークスペースID

インポートされるアプリケーションのワークスペースID。「GET_WORKSPACE_IDファンクション」「SET_WORKSPACE_IDプロシージャ」を参照してください。

アプリケーションID

インポートされるアプリケーションのアプリケーションID。「GENERATE_APPLICATION_IDプロシージャ」「GET_APPLICATION_IDファンクション」「SET_APPLICATION_IDプロシージャ」を参照してください。

オフセット

アプリケーション・インポート中に使用されるオフセット値。「GENERATE_OFFSETプロシージャ」「GET_OFFSETファンクション」「SET_OFFSETプロシージャ」を参照してください。

スキーマ

インポートされるアプリケーションの解析スキーマ("owner")。「GET_SCHEMAファンクション」「SET_SCHEMAプロシージャ」を参照してください。

名前

インポートされるアプリケーションのアプリケーション名。「GET_APPLICATION_NAMEファンクション」「SET_APPLICATION_NAMEプロシージャ」を参照

別名

インポートされるアプリケーションのアプリケーションの別名。「GET_APPLICATION_ALIASファンクション」「SET_APPLICATION_ALIASプロシージャ」を参照してください。

イメージ接頭辞

インポートされるアプリケーションのイメージ接頭辞。「GET_IMAGE_PREFIXファンクション」「SET_IMAGE_PREFIXプロシージャ」を参照してください。

プロキシ

インポートされるアプリケーションのプロキシ・サーバ属性。「GET_PROXYファンクション」「SET_PROXYプロシージャ」を参照してください。


スクリプトのインポート例

開発インスタンス上のワークスペースFRED_DEVを使用して、アプリケーション645のアプリケーション・エクスポートを生成して、ファイルf645.sqlとして保存します。このセクションのすべての例は、SQL*Plusに接続していることを前提としています。

変更がない場合のアプリケーションのインポート

同じアプリケーションIDを使用して、同じ開発インスタンスのFRED_DEVワークスペースにこのアプリケーションをインポートするには、次のようにします。

@f645.sql

アプリケーションIDの指定によるアプリケーションのインポート

アプリケーションID 702を使用して、同じ開発インスタンスのFRED_DEVワークスペースにこのアプリケーションをインポートするには、次のようにします。

begin
  apex_application_install.set_application_id( 702);
  apex_application_install.generate_offset;
  apex_application_install.set_application_alias( 'F' || apex_application.get_application_id );
end;
/
 
@645.sql

アプリケーションIDの生成によるアプリケーションのインポート

Application Expressで生成される使用可能なアプリケーションIDを使用して、同じ開発インスタンスのFRED_DEVワークスペースにこのアプリケーションをインポートするには、次のようにします。

begin
  apex_application_install.generate_application_id;
  apex_application_install.generate_offset;
  apex_application_install.set_application_alias( 'F' || apex_application.get_application_id );
end;
/
 
@f645.sql

異なるスキーマを使用した異なるワークスペースへのアプリケーションのインポート

スキーマFREDDYを使用して、ワークスペースIDを使用して本番インスタンスのFRED_PRODワークスペースにこのアプリケーションをインポートするには、次のようにします(FRED_DEVおよびFRED_PRODのワークスペースIDは異なります)。

declare
    l_workspace_id number;
begin
    select workspace_id into l_workspace_id
      from apex_workspaces
     where workspace = 'FRED_PROD';
    --
    apex_application_install.set_workspace_id( l_workspace_id );
    apex_application_install.generate_offset;
    apex_application_install.set_schema( 'FREDDY' );
    apex_application_install.set_application_alias( 'FREDPROD_APP' );
end;
/
 
@f645.sql

3つの異なるワークスペースのトレーニング・インスタンスへのインポート

このアプリケーションを3つの異なるワークスペースのトレーニング・インスタンスにインポートするには、次のようにします。

declare
    l_workspace_id number;
begin
    select workspace_id into l_workspace_id
      from apex_workspaces
     where workspace = 'TRAINING1';
    --
    apex_application_install.set_workspace_id( l_workspace_id );
    apex_application_install.generate_application_id;
    apex_application_install.generate_offset;
    apex_application_install.set_schema( 'STUDENT1' );
    apex_application_install.set_application_alias( 'F' || apex_application.get_application_id );
end;
/
 
@f645.sql
 
declare
    l_workspace_id number;
begin
    select workspace_id into l_workspace_id
      from apex_workspaces
     where workspace = 'TRAINING2';
    --
    apex_application_install.set_workspace_id( l_workspace_id );
    apex_application_install.generate_application_id;
    apex_application_install.generate_offset;
    apex_application_install.set_schema( 'STUDENT2' );
    apex_application_install.set_application_alias( 'F' || apex_application.get_application_id );
end;
/
 
@f645.sql
 
declare
    l_workspace_id number;
begin
    select workspace_id into l_workspace_id
      from apex_workspaces
     where workspace = 'TRAINING3';
    --
    apex_application_install.set_workspace_id( l_workspace_id );
    apex_application_install.generate_application_id;
    apex_application_install.generate_offset;
    apex_application_install.set_schema( 'STUDENT3' );
    apex_application_install.set_application_alias( 'F' || apex_application.get_application_id );
end;
/
 
@f645.sql

CLEAR_ALLプロシージャ

このプロシージャは、APEX_APPLICATION_INSTALLパッケージで現在保持されているすべての値をクリアします。

構文

APEX_APPLICATION_INSTALL.CLEAR_ALL;

パラメータ

なし。

次の例は、APEX_APPLICATION_INSTALLパッケージで現在設定されているすべての値をクリアします。

begin
    apex_application_install.clear_all;
end;

GENERATE_APPLICATION_IDプロシージャ

このプロシージャはインスタンスで使用可能なアプリケーションIDを生成して、APEX_APPLICATION_INSTALLでアプリケーションIDを設定します。

構文

APEX_APPLICATION_INSTALL.GENERATE_APPLICATION_ID;

パラメータ

なし。

このプロシージャ・コールの例については、「アプリケーションIDの生成によるアプリケーションのインポート」および「3つの異なるワークスペースのトレーニング・インスタンスへのインポート」を参照してください。

GENERATE_OFFSETプロシージャ

このプロシージャは、アプリケーションのインポート中に使用されるオフセット値を生成します。このオフセット値は、Application Expressアプリケーション定義のメタデータがインスタンスの他のメタデータと競合しないようにするために使用します。新規アプリケーション・インストールの場合は、通常、このプロシージャをコールしてApplication Expressでこのオフセット値を生成するだけで十分です。

構文

APEX_APPLICATION_INSTALL.GENERATE_OFFSET;

パラメータ

なし。

このプロシージャ・コールの例については、「アプリケーションIDの指定によるアプリケーションのインポート」「アプリケーションIDの生成によるアプリケーションのインポート」および「3つの異なるワークスペースのトレーニング・インスタンスへのインポート」を参照してください。

GET_APPLICATION_ALIASファンクション

このファンクションは、インポートされるアプリケーションのアプリケーション別名を取得します。これは、インポートされるアプリケーションに別名が指定されている場合にのみ使用します。アプリケーションの別名はワークスペースで一意である必要があります。また、インスタンスでも一意であることをお薦めします。

構文

APEX_APPLICATION_INSTALL.GET_APPLICATION_ALIAS
RETURN VARCHAR2;

パラメータ

なし。

次の例は、APEX_APPLICATION_INSTALLパッケージ内のアプリケーションの別名の値を戻します。アプリケーションの別名は、255文字以下である必要があります。

declare
    l_alias varchar2(255);
begin
    l_alias := apex_application_install.get_application_alias;
end;

GET_APPLICATION_IDファンクション

このファンクションを使用して、インポートされるアプリケーションのアプリケーションIDを取得します。アプリケーションIDはインスタンス内に存在しないか、存在する場合はアプリケーションがインポートされるワークスペース内に存在する必要があります。

構文

APEX_APPLICATION_INSTALL.GET_APPLICATION_ID
RETURN NUMBER;

パラメータ

なし。

次の例は、APEX_APPLICATION_INSTALLパッケージ内のアプリケーションIDの値を戻します。

declare
    l_id number;
begin
    l_id := apex_application_install.get_application_id;
end;

GET_APPLICATION_NAMEファンクション

このファンクションは、インポート・アプリケーションのアプリケーション名を取得します。

構文

APEX_APPLICATION_INSTALL.GET_APPLICATION_NAME
RETURN VARCHAR2;

パラメータ

なし。

次の例は、APEX_APPLICATION_INSTALLパッケージ内のアプリケーション名の値を戻します。

declare
    l_application_name varchar2(255);
begin
    l_application_name := apex_application_install.get_application_name;
end;

GET_IMAGE_PREFIXファンクション

このファンクションはインポート・アプリケーションのイメージ接頭辞を取得します。ほとんどのApplication Expressインスタンスはデフォルトのイメージ接頭辞/i/を使用します。

構文

APEX_APPLICATION_INSTALL.GET_IMAGE_PREFIX
RETURN VARCHAR2;

パラメータ

なし。

次の例は、APEX_APPLICATION_INSTALLパッケージ内のアプリケーションのイメージ接頭辞の値を戻します。アプリケーションのイメージ接頭辞は、255文字以下である必要があります。

declare
    l_image_prefix varchar2(255);
begin
    l_image_prefix := apex_application_install.get_image_prefix;
end;

GET_OFFSETファンクション

このファンクションを使用して、アプリケーションのインポート中に使用されるオフセット値を取得します。

構文

APEX_APPLICATION_INSTALL.GET_OFFSET
RETURN NUMBER;

パラメータ

なし。

次の例は、APEX_APPLICATION_INSTALLパッケージ内のアプリケーションのオフセット値を戻します。

declare
    l_offset number;
begin
    l_offset := apex_application_install.get_offset;
end;

GET_PROXYファンクション

このファンクションを使用して、インポートされるアプリケーションのプロキシ・サーバー属性を取得します。

構文

APEX_APPLICATION_INSTALL.GET_PROXY
RETURN VARCHAR2;

パラメータ

なし。

次の例は、APEX_APPLICATION_INSTALLパッケージ内のプロキシ・サーバ属性の値を戻します。プロキシ・サーバ属性は255文字以下である必要があります。

declare
    l_proxy varchar2(255);
begin
    l_proxy := apex_application_install.get_proxy;
end;

GET_SCHEMAファンクション

このファンクションを使用して、Application Expressアプリケーションの解析スキーマ("owner")を取得します。

構文

APEX_APPLICATION_INSTALL.GET_SCHEMA
RETURN VARCHAR2;

パラメータ

なし。

次の例は、APEX_APPLICATION_INSTALLパッケージ内のアプリケーション・スキーマの値を戻します。

declare
    l_schema varchar2(30);
begin
    l_schema := apex_application_install.get_schema;
end;

GET_WORKSPACE_IDファンクション

このファンクションを使用して、インポートされるアプリケーションのワークスペースIDを取得します。

構文

APEX_APPLICATION_INSTALL.GET_WORKSPACE_ID
RETURN NUMBER;

パラメータ

なし。

次の例は、APEX_APPLICATION_INSTALLパッケージ内のワークスペースIDの値を戻します。

declare
    l_workspace_id number;
begin
    l_workspace_id := apex_application_install.get_workspace_id;
end;

SET_APPLICATION_ALIASプロシージャ

このプロシージャは、インポートされるアプリケーションのアプリケーション別名を設定します。これは、インポートされるアプリケーションに別名が指定されている場合にのみ使用します。アプリケーションの別名はワークスペースで一意である必要があります。また、インスタンスでも一意であることをお薦めします。

構文

APEX_APPLICATION_INSTALL.SET_APPLICATION_ALIAS(
    p_application_alias IN VARCHAR2);

パラメータ

表2-2では、SET_APPLICATION_ALIASプロシージャで使用可能なパラメータについて説明します。

表2-2 SET_APPLICATION_ALIASのパラメータ

パラメータ 説明

p_application_alias

アプリケーションの別名。アプリケーションの別名は英数字の識別子です。255文字以下で、ワークスペース内で一意である必要があります(インスタンス全体で一意であることをお薦めします)。


このプロシージャ・コールの例については、「アプリケーションIDの指定によるアプリケーションのインポート」「アプリケーションIDの生成によるアプリケーションのインポート」「異なるスキーマを使用した異なるワークスペースへのアプリケーションのインポート」および「3つの異なるワークスペースのトレーニング・インスタンスへのインポート」を参照してください。

SET_APPLICATION_IDプロシージャ

このプロシージャを使用して、インポートされるアプリケーションのアプリケーションIDを設定します。アプリケーションIDはインスタンス内に存在しないか、存在する場合はアプリケーションがインポートされるワークスペース内に存在する必要があります。この数値は、正の整数であり、Application ExpressアプリケーションIDの予約範囲内の値ではない必要があります。

構文

APEX_APPLICATION_INSTALL.SET_APPLICATION_ID (
    p_application_id IN NUMBER);

パラメータ

表2-3では、SET_APPLICATION_IDプロシージャで使用可能なパラメータについて説明します。

表2-3 SET_APPLICATION_IDのパラメータ

パラメータ 説明

p_application_id

アプリケーションID。アプリケーションIDは正の整数であり、アプリケーションIDの予約範囲内(3000から8999まで)の値であることはできません。つまり、3000未満または9000以上である必要があります。


このプロシージャ・コールの例については、「アプリケーションIDの指定によるアプリケーションのインポート」を参照してください。

SET_APPLICATION_NAMEプロシージャ

このプロシージャは、インポート・アプリケーションのアプリケーション名を設定します。

構文

APEX_APPLICATION_INSTALL.SET_APPLICATION_NAME;(
    p_application_name  IN VARCHAR2);

パラメータ

表2-4では、SET_APPLICATION_NAMEプロシージャで使用可能なパラメータについて説明します。

表2-4 SET_APPLICATION_NAMEのパラメータ

パラメータ 説明

p_application_name

アプリケーション名。アプリケーション名にNULLまたは255文字より長い名前を指定できません。


次の例は、APEX_APPLICATION_INSTALLでアプリケーション名をExecutive Dashboardに設定します。

declare
    l_name varchar2(255) := 'Executive Dashboard';
begin
    apex_application_install.set_application_name( p_application_name => l_name );
end;

SET_IMAGE_PREFIXプロシージャ

このプロシージャは、インポート・アプリケーションのイメージ接頭辞を設定します。ほとんどのApplication Expressインスタンスはデフォルトのイメージ接頭辞/i/を使用します。

構文

APEX_APPLICATION_INSTALL.SET_IMAGE_PREFIX(
    p_image_prefix  IN VARCHAR2);

パラメータ

表2-4では、SET_IMAGE_PREFIXプロシージャで使用可能なパラメータについて説明します。

表2-5 SET_IMAGE_PREFIXのパラメータ

パラメータ 説明

p_image_prefix

イメージ接頭辞。デフォルトは/i/です。


次の例は、APEX_APPLICATION_INSTALLでイメージ接頭辞変数の値を設定します。

declare
    l_prefix varchar2(255) := '/i/';
begin
    apex_application_install.set_image_prefix( p_image_prefix => l_prefix );
end;

SET_OFFSETプロシージャ

このプロシージャはアプリケーションのインポート中に使用されるオフセット値を設定します。このオフセット値は、Application Expressアプリケーション定義のメタデータがインスタンスの他のメタデータと競合しないようにするために使用します。新規アプリケーション・インストールの場合は、通常、generate_offsetプロシージャをコールしてApplication Expressでこのオフセット値を生成するだけで十分です。

構文

APEX_APPLICATION_INSTALL.SET_OFFSET(
    p_offset IN NUMBER);

パラメータ

表2-6では、SET_OFFSETプロシージャで使用可能なパラメータについて説明します。

表2-6 SET_OFFSETのパラメータ

パラメータ 説明

p_offset

オフセット値。オフセットは正の整数である必要があります。ほとんどの場合は、オフセットを指定する必要はなく、かわりにAPEX_APPLICATION_INSTALL.GENERATE_OFFSETをコールします。これによって、大きなランダム値が生成され、APEX_APPLICATION_INSTALLパッケージで設定されます。


次の例は、データベースから乱数を生成し、この乱数をAPEX_APPLICATION_INSTALLでオフセット値として使用します。.

declare
    l_offset number;
begin
    l_offset := dbms_random.value(100000000000, 999999999999);
    apex_application_install.set_offset( p_offset => l_offset );
end/

SET_PROXYプロシージャ

このプロシージャを使用して、インポートされるアプリケーションのプロキシ・サーバー属性を設定します。

構文

APEX_APPLICATION_INSTALL.SET_PROXY (
    p_proxy IN VARCHAR2);

パラメータ

表2-7では、SET_PROXYプロシージャで使用可能なパラメータについて説明します。

表2-7 SET_PROXYのパラメータ

パラメータ 説明

p_proxy

プロキシ・サーバー。デフォルト値はありません。プロキシ・サーバーは255文字以下である必要があります。http://などのプロトコル接頭辞を含める必要はありません。たとえば、www-proxy.company.comのようにします。


次の例は、APEX_APPLICATION_INSTALLでプロキシ変数の値を設定します。

declare
    l_proxy varchar2(255) := 'www-proxy.company.com'
begin
    apex_application_install.set_proxy( p_proxy => l_proxy );
end;

SET_SCHEMAプロシージャ

このファンクションを使用して、Application Expressアプリケーションの解析スキーマ("owner")を設定します。このスキーマのデータベース・ユーザーがすでに存在する必要があり、また、アプリケーションのインポートに使用するワークスペースに、このスキーマ名がすでにマップされている必要があります。

構文

APEX_APPLICATION_INSTALL.SET_SCHEMA (
    p_schema  IN VARCHAR2);

パラメータ

表2-8では、SET_SCHEMAプロシージャで使用可能なパラメータについて説明します。

表2-8 SET_SCHEMAのパラメータ

パラメータ 説明

p_schema

スキーマ名。


このプロシージャ・コールの例については、「異なるスキーマを使用した異なるワークスペースへのアプリケーションのインポート」および「3つの異なるワークスペースのトレーニング・インスタンスへのインポート」を参照してください。

SET_WORKSPACE_IDプロシージャ

このファンクションを使用して、インポートされるアプリケーションのワークスペースIDを設定します。

構文

APEX_APPLICATION_INSTALL.SET_WORKSPACE_ID (
    p_workspace_id  IN NUMBER);

パラメータ

表2-9では、SET_WORKSPACE_IDプロシージャで使用可能なパラメータについて説明します。

表2-9 SET_WORKSPACE_IDのパラメータ

パラメータ 説明

p_workspace_id

ワークスペースID。


このプロシージャ・コールの例については、「異なるスキーマを使用した異なるワークスペースへのアプリケーションのインポート」および「3つの異なるワークスペースのトレーニング・インスタンスへのインポート」を参照してください。