マルチソース・セッション変数の使用
Oracle Analytics Serverでは、複数のデータ・ソースから移入されるセッション変数がサポートされています。
この項では主としてマルチソース・セッション変数の定義と使用方法について説明していますが、論理問合せとデータ・フィルタでVALUEOF
コンポーネント・セッションを選択することもできます。
このようなマルチソース・セッション変数は論理問合せまたはリポジトリのデータ・フィルタ内で使用でき、様々なデータ・ソースからの値の結合を含めることができます。
マルチソース・セッション変数が保持できる値の数に制限はありません。マルチソース・セッション変数を作成するには、まず、ソースごとに行単位の初期化ブロックを作成します。
ソースごとにセッション変数を明示的に定義します。セッション変数名には次の形式を使用します。
-
<ms_variable_name>____<source>
ちょうど4つのアンダースコア文字をセパレータとして使用する必要があります。
これによって、次の名前のマルチソース・セッション変数1つが自動的に作成されます。
-
<ms_variable_name>
コンポーネント・セッション変数名、<ms_variable_name>____<source>
は、Oracle BI管理ツールの「変数マネージャ」には個別に表示されますが、「式ビルダー」では1つのマルチソース・セッション変数名、<ms_variable_name>のみが表示されます。
行単位の初期化ブロックのいずれかがNULL結果を返した場合、それはOracle BIサーバーのログ、nqserver.log
に記録されます。正常に値を返した他のコンポーネント初期化ブロックのマルチソース・セッション変数にも値を追加できます。マルチソース・セッション変数は、すべてのコンポーネント初期化ブロックがNULL値を返した場合のみ失敗します。
マルチソース・セッション変数についても、通常のセッション変数と同様に、処理優先度と遅延処理を設定できます。
マルチソース・セッション変数の作成と使用方法の説明例
これらの例を使用して、マルチソース・セッション変数の作成方法を学習します。
次の例では、マルチソース・セッション変数の作成と使用方法を示しています。
-
管理ツールの「変数マネージャ」で、「アクション」、「新規」、「セッション」を選択し、次に「初期化ブロック」を選択します。
-
デフォルトの初期化文字列
に対して次のSQLを指定して、mvcountry_sebl_initという行単位の初期化ブロックを作成します。select distinct 'MVCOUNTRY____SEBL', country from siebel_table
-
デフォルトの初期化文字列
に対して次のSQLを指定して、mvcountry_orcl_initという行単位の初期化ブロックを作成します。select distinct 'MVCOUNTRY____ORCL', country from oracle_table
-
そのまま「変数マネージャ」で、「アクション」→「新規」→「セッション」→「変数」を選択します。
-
MVCOUNTRY____SEBLというセッション変数を、変数名とソース名の間に4つのアンダースコアが含まれていることを確認して、作成します。「初期化ブロック」に対して
mvcountry_sebl_init
を選択します。 -
MVCOUNTRY____ORCLという2つ目のセッション変数を、変数名とソース名の間に4つのアンダースコアが含まれていることを確認して、作成します。「初期化ブロック」に対して
mvcountry_orcl_init
を選択します。
コンポーネント・セッション変数は「変数マネージャ」に表示されるのに対し、作成されたMVCOUNTRYマルチソース・セッション変数は「式ビルダー」に表示されます。
論理問合せでのマルチソース・セッション変数の使用方法
これで、MVCOUNTRYマルチソース・セッション変数を論理問合せで使用できるようになりました。
例:
select lastName, firstName, country from employee where country=VALUEOF(NQ_SESSION.MVCOUNTRY)
データ・フィルタでのマルチソース・セッション変数の使用方法
MVCOUNTRYマルチソース・セッション変数をデータ・フィルタで使用するには、次のステップを実行します。
次の図で示すように、「式ビルダー」には、MVCOUNTRYマルチソース・セッション変数のみが表示され、このマルチソース・セッション変数の作成に使用した通常のセッション変数は表示されません。