$DEFAULT_LANGUAGEプロパティは、ディメンションがその定義先のアナリティック・ワークスペースの言語ディメンションであることを示し、その言語ディメンションのデフォルトの言語を指定するプロパティです。
注意: 各アナリティック・ワークスペースには言語ディメンションが1つしか存在せず、$DEFAULT_LANGUAGEプロパティを指定できるのはその言語ディメンションのみです。 |
構文
言語ディメンションに対して$DEFAULT_LANGUAGEプロパティの追加または削除を行う場合は、そのディメンションを、直近に定義または検討されたオブジェクト(DEFINEおよびCONSIDERコマンドを参照)にする必要があります。$DEFAULT_LANGUAGEプロパティは、次のPROPERTY文を使用して追加します。
プロパティを追加する場合は、次の文を発行します。
PROPERTY '$DEFAULT_LANGUAGE' language
プロパティを削除する場合は、次の文を発行します。
PROPERTY DELETE '$DEFAULT_LANGUAGE'
使用上の注意
言語ディメンションに関連する処理
言語ディメンションは、$DEFAULT_LANGUAGEプロパティが定義されているディメンションです。各アナリティック・ワークスペースには言語ディメンションが1つしか存在しません。言語ディメンションに関連する処理は次のとおりです。
言語ディメンションの作成 言語ディメンションは次の手順に従って作成します。
DEFINE DIMENSIONを使用してTEXTディメンションを定義します。
サポートする言語名を言語ディメンションに移入します。言語名には、NLS_LANGUAGEに対して有効な値を使用する必要があります。
$DEFAULT_LANGUAGEプロパティをディメンションに追加します。これにより、このディメンションは、Oracle OLAPにおいてアナリティック・ワークスペースの言語ディメンションとして認識されます。
言語ディメンションによりディメンション化された複数言語変数の定義 複数言語変数を作成するには、言語ディメンションを変数のディメンションに加えます(例4-8「言語ディメンションのアタッチ」を参照)。
言語ディメンション・ステータスの処理 言語ディメンションを持つアナリティック・ワークスペースがアタッチされると、Oracle OLAPでは次のように、言語ディメンションのステータスが初期化されます。
言語ディメンションにSESSION_NLS_LANGUAGEオプションの値が含まれている場合は、言語ディメンションがその値に制限されます。
SESSION_NLS_LANGUAGEオプションに設定されている値が言語ディメンションに含まれていない場合、$DEFAULT_LANGUAGEプロパティに言語ディメンションの値が設定されていれば、言語ディメンションは、そのディメンションの$DEFAULT_LANGUAGEプロパティに指定されている言語に制限されます。
SESSION_NLS_LANGUAGEオプションに設定されている値が言語ディメンションに含まれていないのに加え、言語ディメンションの$DEFAULT_LANGUAGEプロパティに値が設定されていない、もしくは存在しない値が指定されている場合、言語ディメンションは、ディメンションのデフォルトの順序における先頭の値に制限されます。
デフォルトでは、初期化後に言語ディメンション・ステータスは変更できません。ただし、LOCK_LANGUAGE_DIMSオプションの値をTRUEからFALSEに変更すれば、言語ディメンションのステータスはALLに変更され、ディメンションに対してLIMIT文を発行できるようになるため、言語ディメンション・ステータスの変更は可能になります。
言語ディメンションのエクスポート
EXPORT(EIF)を使用してアナリティック・ワークスペースをエクスポートする場合、Oracle OLAPでは、エクスポートする言語ディメンションの値が次の手順に従って決定されます。
EXPORT文が実行される際にLOCK_LANGUAGE_DIMSオプションの値がFALSEであれば、Oracle OLAPでは、現行の言語ディメンション・ステータスに従ってエクスポートが実行されます。
EXPORT文が実行される際にLOCK_LANGUAGE_DIMSオプションの値がTRUEの場合は、Oracle OLAPにより次の処理が行われます。
EXPORT文が実行される前に、LOCK_LANGUAGE_DIMSオプションの値がFALSEに変更(したがってステータスはALLに設定)されます。
EXPORT文が実行されます。言語ディメンションのすべての値がエクスポートされます。
LOCK_LANGUAGE_DIMSオプションの値がTRUEに変更され、SESSION_NLS_LANGUAGEオプションの値に基づいて言語ディメンション・ステータスがリセットされます。
例
例4-7 言語ディメンションの作成
ここでは例として、mylangs
という言語ディメンションを作成します。この言語ディメンションはデフォルト言語が英語で、フランス語と英語をサポートします。
NLS_LANGUAGE = 'AMERICAN' DEFINE mylangs DIMENSION TEXT MAINTAIN mylangs ADD 'FRENCH' 'AMERICAN' CONSIDER mylangs PROPERTY '$DEFAULT_LANGUAGE' 'AMERICAN' SHOW OBJ(PROPERTY '$DEFAULT_LANGUAGE' 'mylangs') AMERICAN REPORT mylangs MYLANGS -------------- FRENCH AMERICAN
例4-8 言語ディメンションのアタッチ
ここでは、myaw
というアナリティック・ワークスペースで、言語ディメンションmylangs
を作成(例4-7「言語ディメンションの作成」を参照)したとします。また、次のような定義と値を持つproducts
ディメンションおよびprod-desc
変数を作成したとします。
DEFINE MYLANGS DIMENSION TEXT SHOW OBJ(PROPERTY '$DEFAULT_LANGUAGE' 'mylangs') AMERICAN DEFINE PRODUCTS DIMENSION TEXT DEFINE PROD_DESC VARIABLE TEXT <PRODUCTS MYLANGS> MYLANGS -------------- FRENCH AMERICAN PRODUCTS -------------- PROD01 PROD02 ------PROD_DESC------ ------PRODUCTS------- MYLANGS PROD01 PROD02 -------------- ---------- ---------- FRENCH Pantalons JupesAMERICAN Trousers Skirts
アナリティック・ワークスペースをアタッチするとします。アナリティック・ワークスペースのオプションを表示し、mylangs
およびprod_desc
のレポートを要求すると、mylangs
ディメンションが、SESSION_NLS_LANGUAGEオプションの値であるAMERICAN(英語)に制限されていることがわかります。
SHOW NLS_LANGUAGE AMERICAN AW ATTACH myaw RW " Get the default language in our language dimension SHOW OBJ(PROPERTY '$DEFAULT_LANGUAGE' 'mylangs') AMERICAN SHOW SESSION_NLS_LANGUAGE AMERICAN SHOW LOCK_LANGUAGE_DIMS yes SHOW STATIC_SESSION_LANGUAGE no REPORT mylangs MYLANGS -------------- AMERICAN REPORT prod_desc ------PROD_DESC------ ------PRODUCTS------- MYLANGS PROD01 PROD02 -------------- ---------- ---------- AMERICAN Trousers Skirts
例4-9 NLS_LANGUAGEの変更
例4-8「言語ディメンションのアタッチ」で説明したアナリティック・ワークスペースmyaw
をアタッチしたとします。NLS_LANGUAGEの値をFRENCH(フランス語)に変更します。STATIC_SESSION_LANGUAGEの値がNOに設定されているため、NLS_LANGUAGEの値の変更によって、SESSION_NLS_LANGUAGEオプションの値がFRENCHに変更されます。mylangs
およびprod_desc
のレポートに表示されているとおり、SESSION_NLS_LANGUAGEオプションの値がFRENCHになれば、mylangs
ディメンションはフランス語に制限されます。
SET NLS_LANGUAGE= 'FRENCH' SHOW OBJ(PROPERTY '$DEFAULT_LANGUAGE' 'mylangs') AMERICAN SHOW NLS_LANGUAGE FRENCH SHOW SESSION_NLS_LANGUAGE FRENCH SHOW LOCK_LANGUAGE_DIMS oui SHOW STATIC_SESSION_LANGUAGE non REPORT mylangs MYLANGS -------------- FRENCH REPORT prod_desc ------PROD_DESC------ ------PRODUCTS------- MYLANGS PROD01 PROD02 -------------- ---------- ---------- FRENCH Pantalons Jupes
例4-10 NLS_LANGUAGEを言語ディメンションに指定されていない値に設定する
アナリティック・ワークスペースmyaw
(例4-9「NLS_LANGUAGEの変更」を参照)において、NLS_LANGUAGEの値をまずAMERICANに設定し、続いてSPANISH(スペイン語)に設定します。次のコードに示されているとおり、言語ディメンションmylangs
にはSPANISHという値は指定されていないため、mylangs
ディメンションは$DEFAULT_LANGUAGEプロパティの値(ここではAMERICAN)に制限されます。
"Change the value of NLS_LANGUAGE to AMERICAN SET NLS_LANGUAGE= 'AMERICAN' "Change the value of NLS_LANGUAGE to SPANISH SET NLS_LANGUAGE= 'SPANISH' SHOW OBJ(PROPERTY '$DEFAULT_LANGUAGE' 'mylangs') AMERICAN SHOW NLS_LANGUAGE SPANISH SHOW SESSION_NLS_LANGUAGE SPANISH SHOW LOCK_LANGUAGE_DIMS sí SHOW STATIC_SESSION_LANGUAGE no REPORT mylangs MYLANGS -------------- AMERICAN REPORT prod_desc ------PROD_DESC------ ------PRODUCTS------- MYLANGS PROD01 PROD02 -------------- ---------- ---------- AMERICAN Trousers Skirts
次のコードを使用し、デフォルトの言語を指定しないで言語ディメンションmylangs
を定義したとします。
DEFINE mylangs DIMENSION TEXT MAINTAIN mylangs ADD 'FRENCH' 'AMERICAN' CONSIDER mylangs PROPERTY '$DEFAULT_LANGUAGE' ''
この場合、NLS_LANGUAGEの値をSPANISHに設定すると、言語ディメンションmylangs
には$DEFAULT_LANGUAGEプロパティに指定された値が含まれていないため、mylangs
ディメンションは、その先頭の値(ここではFRENCH)に制限されます。
NLS_LANGUAGE = 'SPANISH' SHOW OBJ(PROPERTY '$DEFAULT_LANGUAGE' 'mylangs') SHOW NLS_LANGUAGE SPANISH SHOW SESSION_NLS_LANGUAGE SPANISH SHOW LOCK_LANGUAGE_DIMS sí SHOW STATIC_SESSION_LANGUAGE no REPORT mylangs MYLANGS -------------- FRENCH REPORT prod_desc ------PROD_DESC------ ------PRODUCTS------- MYLANGS PROD01 PROD02 -------------- ---------- ---------- FRENCH Pantalons Jupes