ヘッダーをスキップ
Oracle® OLAP DMLリファレンス
11gリリース2 (11.2)
B61346-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

REMOVE_DIMENSION_MEMBER

REMOVE_DIMENSION_MEMBERプログラムを実行すると、1つ以上の階層からOLAPキューブ・ディメンション・メンバーが削除されるか、またはキューブ・ディメンションからOLAPキューブ・ディメンション・メンバーが完全に削除されます。


注意:

キューブ・ディメンションまたはそのキューブ・ディメンションを含むキューブに対してマテリアライズド・ビューが存在する場合は、キューブ・ディメンションの変更に、このプログラムを使用できません。

構文

CALL REMOVE_DIMENSION_MEMBER(member_id, logical_dim, hier_list, [ auto_compile ])

パラメータ

CALL

REMOVE_DIMENSION_MEMBERは引数を持つOLAP DMLプログラムであるため、OLAP DML CALL文を使用して起動します。

member_id

キューブ・ディメンション階層から削除するメンバーを示すテキスト式。

logical_dim

変更するキューブ・ディメンションのOracleデータ・ディクショナリ名を示すテキスト式。

hier_list

キューブ・ディメンション・メンバーの削除元となるすべての階層のOracleデータ・ディクショナリ名で構成された複数行のテキスト式。1行ごとに1つの階層を指定します。

ディメンションからメンバーを完全に削除するには、NAを指定します。

auto_compile

関連するアナリティック・ワークスペース・オブジェクト(親リレーションの変更など)を即時更新するかどうかを指定するブール式。

デフォルト値はTRUEです。この値を指定すると、アナリティック・ワークスペースの変更内容のうち、キューブ・ディメンション・メンバーの削除に必要のあるものはすべて即座に更新されます。

パフォーマンス上の理由から、FALSEはコンパイルの実行前に大量の変更を行う場合のみ指定してください。この場合、アナリティック・ワークスペース・オブジェクトの値が有効になる前に、キューブ・ディメンションを明示的にコンパイルする必要があります(「キューブ・ディメンションの明示的なコンパイル」を参照)。


注意:

この引数に対して指定した値に関係なく、新しいメンバーは常にディメンションから即時に削除されます。これは、コンパイル中にエラーが通知された場合でも同様です。

例10-98 階層からのOLAPキューブ・ディメンション・メンバーの削除

  1. 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.
     
    
  2. remove_12_1 OLAP DMLプログラムという名前のユーザー作成プログラムをコールする次のSQL文を実行します。

    exec dbms_aw.execute('call my_util_aw!remove_l2_1');
    

    ユーザー作成のremove_12_1プログラムの内容を次に示します。


    注意:

    このプログラムでは次を使用します。
    • OBJORGファンクション。このファンクションを使用して、my_timeキューブ・ディメンションを物理的に実装するOLAP DMLオブジェクトを指定します。

    • OLAP DMLから提供されるREMOVE_DIMENSION_MEMBERプログラム。このプログラムを使用して、my_timeキューブ・ディメンションからL2_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
     
    
  3. 削除後の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.