REMOVE_DIMENSION_MEMBERプログラムを実行すると、1つ以上の階層からOLAPキューブ・ディメンション・メンバーが削除されるか、またはキューブ・ディメンションからOLAPキューブ・ディメンション・メンバーが完全に削除されます。
|
注意: キューブ・ディメンションまたはそのキューブ・ディメンションを含むキューブに対してマテリアライズド・ビューが存在する場合は、キューブ・ディメンションの変更に、このプログラムを使用できません。 |
パラメータ
REMOVE_DIMENSION_MEMBERは引数を持つOLAP DMLプログラムであるため、OLAP DML CALL文を使用して起動します。
キューブ・ディメンション階層から削除するメンバーを示すテキスト式。
変更するキューブ・ディメンションのOracleデータ・ディクショナリ名を示すテキスト式。
キューブ・ディメンション・メンバーの削除元となるすべての階層のOracleデータ・ディクショナリ名で構成された複数行のテキスト式。1行ごとに1つの階層を指定します。
ディメンションからメンバーを完全に削除するには、NAを指定します。
関連するアナリティック・ワークスペース・オブジェクト(親リレーションの変更など)を即時更新するかどうかを指定するブール式。
デフォルト値はTRUEです。この値を指定すると、アナリティック・ワークスペースの変更内容のうち、キューブ・ディメンション・メンバーの削除に必要のあるものはすべて即座に更新されます。
パフォーマンス上の理由から、FALSEはコンパイルの実行前に大量の変更を行う場合のみ指定してください。この場合、アナリティック・ワークスペース・オブジェクトの値が有効になる前に、キューブ・ディメンションを明示的にコンパイルする必要があります(「キューブ・ディメンションの明示的なコンパイル」を参照)。
|
注意: この引数に対して指定した値に関係なく、新しいメンバーは常にディメンションから即時に削除されます。これは、コンパイル中にエラーが通知された場合でも同様です。 |
例
例10-98 階層からのOLAPキューブ・ディメンション・メンバーの削除
my_timeキューブ・ディメンションの値についてレポートする次のSQL文を実行します。
select dim_key||' '||level_name||' '||parent from my_time_lvl_hier_view order by dim_key asc;
この文によって返される値は次のとおりです。
DIM_KEY||''||LEVEL_NAME||''||PARENT ------------------------------------------------------------------------------- L1_0 L1 L1_1 L1 L1_2 L1 L2_1 L2 L1_1 L2_2 L2 L1_1 L2_3 L2 L1_2 L3_1 L3 L2_1 L3_2 L3 L2_1 L3_3 L3 L2_2 L3_4 L3 L2_2 L3_5 L3 L2_2 L3_6 L3 L2_3 12 rows selected.
remove_12_1 OLAP DMLプログラムという名前のユーザー作成プログラムをコールする次のSQL文を実行します。
exec dbms_aw.execute('call my_util_aw!remove_l2_1');
ユーザー作成のremove_12_1プログラムの内容を次に示します。
|
注意: このプログラムでは次を使用します。
|
DEFINE REMOVE_L2_1 PROGRAM
PROGRAM
VARIABLE _aw_dim text
VARIABLE _parentrel text
VARIABLE _members text
VARIABLE _member text
VARIABLE _i integer
" Removes L2_1 and descendants
_aw_dim = OBJORG(DIM 'my_time')
_parentrel = OBJORG(PARENTREL 'my_time')
LIMIT &_aw_dim TO 'L2_1'
LIMIT &_aw_dim ADD DESCENDANTS USING &_parentrel
_members = VALUES(&_aw_dim)
_i = 1
WHILE _i LE NUMLINES(_members)
DO
_member = EXTLINES(_members, _i, 1)
_i = _i + 1
CALL REMOVE_DIMENSION_MEMBER(_member, 'my_time', NA, NO)
DOEND
UPDATE
COMMIT
END
削除後のmy_timeキューブ・ディメンションの値を表示する次のSQL文(手順1で使用した文と同じ)を実行します。
select dim_key||' '||level_name||' '||parent
from my_time_lvl_hier_view
order by dim_key asc;
削除後の値は次のとおりです。
DIM_KEY||''||LEVEL_NAME||''||PARENT -------------------------------------------------------------------------------- L1_0 L1 L1_1 L1 L1_2 L1 L2_2 L2 L1_1 L2_3 L2 L1_2 L3_3 L3 L2_2 L3_4 L3 L2_2 L3_5 L3 L2_2 L3_6 L3 L2_3 9 rows selected.