RELATIONコマンドは、任意のリレーションを現行オブジェクトの指定ディメンションのデフォルト・リレーションとして指定したり、現行オブジェクトからデフォルト・リレーション情報を削除するコマンドです。デフォルトのリレーションの詳細は、「式における関連ディメンションの使用方法」を参照してください。
注意: RELATIONコマンドと、ALLOCMAPやAGGMAPのRELATION文とを混同しないでください。 |
パラメータ
事前定義のディメンションの名前。dimension-name引数で指定するディメンションは、デフォルトのリレーションを指定または削除する現在検討中のオブジェクトのディメンションである必要があります。
注意: dimension-name引数で指定するディメンションは、現在検討中のオブジェクトのディメンションである必要があります。現行オブジェクトは、現行セッションで最も新しく定義したオブジェクトか検討しているオブジェクトです。オブジェクト定義を現行定義にするには、CONSIDER文を使用します。 |
dimension-nameで指定されたディメンションのデフォルト・リレーションとして使用される事前定義のリレーションの名前。
事前に指定したデフォルト・リレーション情報の削除を指定します。
事前に定義したデフォルト・リレーション情報をすべて削除します。
使用上の注意
Oracle OLAPでの複数リレーション間の選択方法
2つのディメンション間で複数のリレーションが存在し、関連ディメンションに基づいてそれらのディメンションの1つで計算を実行する場合、Oracle OLAPでは、文の実行時に使用するリレーションが次のように選択されます。
文に指定されているリレーションが使用されます(ある場合)。
ディメンションのデフォルトのリレーションが使用されます。Oracle OLAPでは、デフォルトのリレーションは次のように決定されます。
RELATIONコマンドを使用してデフォルトのリレーションを指定した場合、Oracle OLAPでは、そのリレーションがデフォルトのリレーションとして認識されます。
RELATIONコマンドを使用してデフォルトのリレーションを指定していない場合、Oracle OLAPでは、最初に定義したリレーションがデフォルトのリレーションとして認識されます。
デフォルトのリレーションの確認
OBJファンクションをRELATIONキーワードとともに使用すると、オブジェクトのデフォルト・リレーション情報を確認できます。
同じオブジェクトに対する複数のRELATIONコマンド
最後に検討されたオブジェクトに対して処理を行う文(LD文など)とは異なり、RELATIONコマンドを新たに発行しても、事前に発行されたRELATIONコマンドは置き換えられません。かわりに、同じオブジェクトに対して複数のRELATIONコマンドが発行されることになり、累積的な効果が得られます。
例
例10-95 RELATIONコマンドを使用したデフォルト・リレーションの指定
次のアナリティック・ワークスペース・オブジェクトを(次の順序で)定義したとします。
DEFINE CITY DIMENSION TEXT DEFINE DISTRICT DIMENSION TEXT DEFINE CITY_DISTRICT RELATION DISTRICT <CITY> DEFINE CITY_REDISTRICT_1 RELATION DISTRICT <CITY> REPORT city_district CITY CITY_DISTRICT -------------------- -------------------- Annapolis Southern Bethesda Southern Charlotte Southern Gettysburg Southern Greensboro Southern Raleigh Southern Reston Southern Rochester Southern Virginia Beach Southern Washington Capital REPORT city_redistrict_1 CITY CITY_REDISTRICT_1 -------------------- -------------------- Annapolis Capital Bethesda Capital Charlotte Southern Gettysburg Southern Greensboro Southern Raleigh Southern Reston Southern Rochester Southern Virginia Beach Capital Washington Capital
次のOBJ文が示すように、city_district
リレーションがcity
とdistrict
との間のデフォルトのリレーションです。これは、city_district
リレーションがcity
とdistrict
との間で定義された最初のリレーションであり、RELATION文でデフォルトのリレーションが指定されていないためです。
SHOW OBJ (RELATION ACTUAL 'city' 'district') CITY_DISTRICT SHOW OBJ (RELATION SPECIFIED 'city' 'district') NA
ここで、次の文を発行し、districtをWashington
に制限し、city_redistrict_1
リレーションをデフォルトのリレーションにするとします。
LIMIT city TO district CONSIDER city RELATION city city_redistrict_1
次のOBJ文が示すように、ここで、RELATION文で指定したcity_redistrict_1
リレーションがcity
とdistrict
との間のデフォルトのリレーションになります。
SHOW OBJ (RELATION ACTUAL 'city' 'district') CITY_REDISTRICT_1 SHOW OBJ (RELATION SPECIFIED 'city' 'district') CITY_REDISTRICT_1
また、次の文が示すように、cityをdistrictに制限すると、cityをcity_redistrict_1リレーションに制限したのと同じ結果が得られます。
LIMIT city TO district REPORT city CITY -------------------- Annapolis Bethesda Virginia Beach Washington LIMIT city to ALL LIMIT city to city_redistrict_1 REPORT city CITY -------------------- Annapolis Bethesda Virginia Beach Washington