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

前
 
次
 

MAINTAIN

MAINTAINコマンドは、ディメンションの値、コンポジットの値およびパーティション・テンプレート・オブジェクトの値を入力し、メンテナンスするコマンドです。


注意:

MAINTAIN文は、Maintainトリガーを持つサロゲート・ディメンションにも発行できます。この場合、Oracle OLAPでは、Maintainトリガー・プログラムのみが実行され、それ以外のアクションは行われません。詳細は、「トリガー・プログラム」を参照してください。Maintainトリガーのないサロゲート・ディメンションに対してMAINTAIN文を発行すると、エラーが返されます。

構文

MAINTAIN object {ADD|DELETE|RENAME|MOVE|MERGE} args

MAINTAINコマンドで使用できるキーワードは、オブジェクトごとに次のように異なります。

  • MAINTAIN dimension {ADD|DELETE|RENAME|MOVE|MERGE} args

    使用できるキーワードは、メンテナンスするディメンションの型によって、次のように異なります。

    • 非連結ディメンションでは、ADD、DELETE、RENAME、MOVEまたはMERGEキーワードを使用して、非連結ディメンション値を追加、削除、名前の変更、移動またはマージできます。また、ADDキーワードを使用して、一時計算メンバーをディメンションに追加することもできます。

    • 連結ディメンションで使用できるのは、連結ディメンション値を移動するMOVEキーワードのみです。

  • MAINTAIN composite {ADD|DELETE|MERGE} args

  • MAINTAIN partition-template {ADD|DELETE|MOVE} args

具体的な構文はキーワードによって異なります。したがって、MAINTAINコマンドの各キーワードについては、次のように個別に説明します。

MAINTAIN ADD
MAINTAIN DELETE
MAINTAIN MERGE
MAINTAIN MOVE
MAINTAIN RENAME

MAINTAINコマンド全般に関する情報は、このトピックの使用上の注意を参照してください。

使用上の注意

MAINTAINを実行した際のトリガー・プログラムの実行

TRIGGERコマンドを使用すると、MAINTAIN文の実行を、OLAP DMLプログラムを自動的に実行するイベントにすることができます。詳細は、「トリガー・プログラム」を参照してください。

ステータスの自動リセット

現行のステータスがALLでないディメンションまたはコンポジットをADD、DELETE、MERGEまたはMOVEキーワードでメンテナンスすると、MAINTAINコマンドによって、メンテナンスを実行する前にステータスが自動でALLにリセットされます。ただし、現行のステータスがALLでないディメンションをRENAMEキーワードでメンテナンスする場合には、ディメンションのステータスはMAINTAINコマンドによって変更されません

メンテナンス権限

PERMIT MAINTAIN文によってディメンションのメンテナンス権限が拒否される場合は、ディメンションに対するメンテナンスは実行できません。ディメンションの読取り権限が制限されていると、そのディメンションのメンテナンス権限を指定しても、メンテナンス権限は常に暗黙的に拒否されます。(PERMITコマンドを参照してください。)

マルチライタ・モードのアナリティック・ワークスペースにおけるディメンションのメンテナンス

マルチライタ・モードでアタッチしたアナリティック・ワークスペース内のディメンションをメンテナンスする際は、次の点に注意してください。

  • ディメンションのいずれかがすでに取得および変更された場合は、変数を更新できません。

  • ディメンション値を追加してからディメンションを元に戻すと、そのディメンションによってディメンション化された変数の領域割当てが最適ではなくなることがあるためお薦めしません。

  • 取得済変数がメンテナンス済の取得したディメンションによってディメンション化されている場合、そのディメンションが更新または解放されるまで変数を更新できません。

  • メンテナンスのためにコンポジットを取得する必要はありません。コンポジットのディメンションには、Oracle OLAPによって自動で同時にディメンションのメンテナンスが実行されます。

マルチライタ・モードでアタッチしたアナリティック・ワークスペース内のディメンションをメンテナンスするには、まずACQUIRE文を使用してディメンションを取得する必要があります。

たとえば、ユーザーAとユーザーBが、actualsbudgetの両方についてそれぞれwhat-if計算を実行する必要があるとします。what-if計算の実行後、ユーザーAはactualsを、ユーザーBはbudgetを変更する必要があります。最後に、ユーザーAとユーザーBはどちらも、新しいtimeディメンション値を追加し、その新しいディメンション値に対応するデータをactualsまたはbudgetに追加する必要があります。

ユーザーAが次のOLAP DML文を発行します。

AW ATTACH myworkspace MULTI
...make modifications 
ACQUIRE actuals
...make more modifications
ACQUIRE time
MAINTAIN time ADD 'Y2002'
actuals (time 'Y2002', ...) = ...
UPDATE MULTI actuals, time
COMMIT
RELEASE actuals, time
AW DETACH myworkspace

ユーザーBが次のOLAP DML文を発行します。

AW ATTACH myworkspace MULTI
...make modifications 
ACQUIRE budget
...make more modifications
ACQUIRE time--> failed
ACQUIRE RESYNC time WAIT
MAINTAIN time ADD 'Y2003'
budget (time 'Y2003', ...) = ...
UPDATE MULTI budget, time
COMMIT
RELEASE budget, time
AW DETACH myworkspace

MAINTAINとディメンション・サロゲート

ディメンション・サロゲートでは、MAINTAIN文を使用できません。MAINTAINは、ディメンションへの値の追加や、ディメンションからの値の削除でのみ使用できます。ただし、ディメンション値を追加または削除すると、Oracle OLAPは、自動でそのディメンションのサロゲートに位置を追加またはサロゲートから位置を削除します。ディメンションに位置を追加すると、そのディメンションのサロゲートの対応する位置にNA値が追加されます。

連結ディメンションのメンテナンス

連結ディメンションには、そのコンポーネントのディメンションの値が含まれます。連結ディメンションの値は、直接MAINTAIN文で追加、マージまたは削除されません。かわりに、連結のコンポーネントのディメンションに対し値を追加、マージまたは削除すると、連結ディメンションに値が自動で追加またはディメンションから値が削除されます。ただし、MAINTAINコマンドでMOVEキーワードを指定し、連結ディメンションの値の順序を変更することは可能です。


MAINTAIN ADD

MAINTAINコマンドでADDキーワードを使用すると、非連結ディメンション、コンポジットまたはパーティションに新しいTEXT値、ID値およびINTEGER値を追加したり、ディメンションに新しい一時計算メンバーを追加したりできます。


注意:

TEXT値、ID値およびINTEGER値に対するMAINTAIN ADD文は、Maintainトリガーを持つサロゲート・ディメンションにも発行できます。この場合、Oracle OLAPでは、Maintainトリガー・プログラムが各値に対して1回ずつ実行され、それ以外のアクションは行われません。詳細は、「トリガー・プログラム」を参照してください。Maintainトリガーのないサロゲート・ディメンションに対してMAINTAIN文を発行すると、エラーが返されます。

構文

ADDキーワードを使用するMAINTAINコマンドの構文は、メンテナンスするオブジェクトの型、および追加するメンバーが永続的か一時的かによって異なります。

そのため、MAINTAIN ADDについては、次のように個別に説明します。

TEXT値、ID値およびINTEGER値に対するMAINTAIN ADD

MAINTAINコマンドでADDキーワードを使用すると、非連結ディメンションまたはコンポジットに新しいTEXT値、ID値またはINTEGER値を追加できます。


注意:

MAINTAIN ADD文は、Maintainトリガーを持つサロゲート・ディメンションにも発行できます。この場合、Oracle OLAPでは、Maintainトリガー・プログラムがvaluelistの各値に対して1回ずつ実行され、それ以外のアクションは行われません。詳細は、「トリガー・プログラム」を参照してください。Maintainトリガーのないサロゲート・ディメンションに対してMAINTAIN文を発行すると、エラーが返されます。

構文

MAINTAIN composite|dimension ADD valuelist [FIRST|LAST|BEFORE position|AFTER position]

パラメータ

dimension

アタッチしたアナリティック・ワークスペースで定義されている非連結ディメンション。

composite

コンポジット。コンポジットが名前付きコンポジットの場合、アタッチしたアナリティック・ワークスペースで定義されている必要があります。コンポジットが名前のないコンポジットの場合は、アタッチしたアナリティック・ワークスペースでオブジェクトの定義に使用されている必要があります。名前のないコンポジットを参照するには、SPARSEキーワードを使用します(SPARSE <market product>など)。

ADD valuelist

ディメンションまたはコンポジットにvaluelistの値を追加することを指定します。

  • この引数を使用してTEXT型またはID型のコンポジットまたはディメンションに値を追加する場合、valuelistはテキスト・リテラル、TEXT式、ID式のいずれかになります。複数行のテキスト式の場合は、各要素(行)は個別の値として処理されます。nullディメンション値(空の一重引用符)または空白のみの値は、後でその値を参照できないので、追加しないでください。

  • dimensionがINTEGERの場合、valuelistは5や100などのINTEGERになります。

FIRST
LAST

ディメンション値を追加する論理位置を指定します。FIRSTは、新しい値を既存値の前に挿入することを示します。LASTは、新しい値を現行の値の後に追加することを示します。LASTがデフォルトです。INTEGERディメンションに一定量のINTEGER値を追加すると、それらのINTEGER値は(仕様に応じて)既存のINTEGER値の前または後に追加され、それら一連のすべてのINTEGER値が自動で数字順にソートされます。

指定した値は、文のキーワードの直前にある値のみではなく、キーワードFIRSTまたはLASTの前に指定したすべての値がその位置に配置されます。

BEFORE position
AFTER position

値を前または後に追加する基準の位置を指定します。positionには、既存のディメンション値、既存のディメンション値を値とする文字式、またはディメンション値の位置を表すINTEGER式を指定できます。INTEGERディメンションに一定量のINTEGER値を追加すると、それらのINTEGER値は指定したINTEGER位置の前または後に追加され、それら一連のすべてのINTEGER値が自動で数字順にソートされます。

指定した値は、文のキーワードの直前にある値のみではなく、キーワードBEFOREまたはAFTERの前に指定したすべての値がその位置に配置されます。

使用上の注意

MAINTAIN ADD BEFOREまたはAFTER positionを使用する場合のパフォーマンス

MAINTAIN ADD BEFORE文またはMAINTAIN MOVE AFTER文を使用する場合のコスト・パフォーマンスは、追加される値の数ではなく、ディメンション内の値の数によって異なります。したがって、これらの文を多く連ねて発行するかわりに、次のようにします。

  1. 単純なMAINTAIN ADD文を使用して値を追加します。

  2. ディメンション・ステータスのステータスを目的の値に設定します。

  3. 単独のMAINTAIN MOVE dimension value文を発行して、追加した値を並べ替えます。

INTEGERディメンションへの値の追加

MAINTAINを使用してINTEGERディメンションの値を追加すると、INTEGER値の通常の順序(1、2、3...)になるように値の位置番号が変更されます。

結合ディメンションとコンポジット

結合ディメンションまたはコンポジットの各値は、そのディメンション・リストの各ディメンション(および存在する場合はコンポジット)からの値の組合せです。結合ディメンションまたはコンポジットに値を追加するには、各値の組合せを山カッコで囲んで指定します。指定した組合せの値は、結合ディメンションまたはコンポジットの定義にあるディメンションおよびコンポジットと同じ順序である必要があります。また、組合せの各ディメンション値は、対応するベース・ディメンションに値としてすでに存在している必要があります。ただし、組合せにコンポジット値が存在しない場合、Oracle OLAPによって、その値は適切なコンポジットに自動で追加されます。

例10-39 TEXTディメンションへの値の追加

次の文では、cityディメンションのディメンション値の最後にOmahaおよびSeattleが追加されます。

MAINTAIN city ADD 'Omaha' 'Seattle'

次の文では、cityリストの最初にAtlantaが追加され、Omahaの後にPeoriaが挿入されます。

MAINTAIN city ADD 'Atlanta' FIRST, 'Peoria' AFTER 'Omaha'

ここでは、TEXT変数textvarの値を、cityの5番目のディメンション値の前に挿入します。ディメンション値を大文字と小文字を区別する表記にしているため、値Columbustextvarに代入する際は、大文字と小文字を使用した表記とすることに注意してください。

textvar = 'Columbus'
MAINTAIN city ADD textvar BEFORE 5

例10-40 結合ディメンションへの値の追加

次の文は、結合ディメンションに値を追加する例です。

DEFINE proddist DIMENSION <product, district>
MAINTAIN proddist ADD <'Tents' 'Boston'> <'Footwear' 'Denver'>

ベース・ディメンションの値をテキスト変数に代入し、山カッコ内の変数の名前を使用することもできます。

prodname = 'Canoes'
distname = 'Seattle'
MAINTAIN proddist ADD <prodname, distname>

DAY値、WEEK値、MONTH値、QUARTER値およびYEAR値に対するMAINTAIN ADD

MAINTAINコマンドでADDキーワードを使用して、DAY、WEEK、MONTH、QUARTERおよびYEAR型のディメンションに新しい値を追加できます。

構文

MAINTAIN dimension ADD {valuelist|{n PERIODS FIRST}|{n PERIODS LAST}}

パラメータ

dimension

アタッチしたアナリティック・ワークスペースで定義されている非連結ディメンション。

ADD valuelist

ディメンションにvaluelistの値を追加することを指定します。dimensionがDAY、WEEK、MONTH、QUARTER、YEAR型の場合、valuelistはテキスト定数、TEXT式、ID式、DATE式のいずれかになります。値がTEXTの場合、ディメンションのVNF(値名書式)で指定されている書式(ディメンションにVNFがない場合は、メンテナンスするディメンションの型に対するデフォルト書式)または日付値の有効な入力形式で指定します。値をTEXT式として指定する場合は、各要素または各行は個別の値として処理されます。

値がVNFの書式またはディメンションの型に対するデフォルト書式で指定されている場合、各値は追加する期間を明示的に示します。たとえば、monthディメンションのVNFが'<MTXT><YY>'だとします。この場合、値JAN99は1999年の1月を表します。

DAY、WEEK、MONTH、QUARTER、YEAR型のディメンションの値を日付として指定する際は、メンテナンスするディメンションの型に適した日付コンポーネントのみを指定する必要があります。DAYまたはWEEKディメンションでは、日、月および年の各コンポーネントを指定する必要があります。MONTHまたはQUARTERディメンションでは、月および年のみを指定します(1998年6月の場合は'JUN98'または'0698'など)。YEARディメンションでは、年のみを指定します(1998年の場合は'98'など)。日付の有効な入力形式の詳細は、DATEORDERオプションを参照してください。

完全な日付を表すDATE式またはTEXT値を指定してディメンション値を追加する場合は、追加する期間内にある任意の日付を指定できます。たとえば、1999年の1月を追加するには、'01JAN99'から'31JAN99までのどの日付でも指定できます。指定された値があいまいな場合、Oracle OLAPでは、DATEORDERオプションを使用して解決します。

値が指定されていないDAY、WEEK、MONTH、QUARTER、YEAR型のディメンションに値を追加する際は、ディメンションに追加する最初の値および最後の値のみを指定します。Oracle OLAPによって、その期間内を埋める適切な値が自動で代入されます。

DAY、WEEK、MONTH、QUARTER、YEAR型のディメンションにすでに値がある場合は、既存のリストの先頭または末尾にのみ値を追加できます。値を追加する際は、追加する最初の値または最後の値のみを指定します。Oracle OLAPによって、既存のリストと指定した値の間の期間を埋める適切な値が自動で代入されます。

n PERIODS FIRST
n PERIODS LAST

ディメンション値の先頭または末尾に追加する期間の数を指定します。

例10-41 QUARTER型のディメンションへの値の追加

この例では、qtrという名前の新しいQUARTERディメンションを定義し、1998年および1999年の四半期のディメンション値を追加します。最初と最後のディメンション値のみを追加します。その間の値はOracle OLAPによって自動で代入されます。最初と最後の四半期を追加するには、それらの四半期内の任意の日付を指定します。

DEFINE qtr DIMENSION QUARTER
MAINTAIN qtr ADD '01jan98' '31dec99'

MAINTAIN ADD SESSION

MAINTAINコマンドでADD SESSIONキーワードを使用すると、ディメンションに一時計算メンバーを追加し、指定したオブジェクトにそのメンバーを適用したり、指定したオブジェクトに事前定義されている計算メンバーを適用できます。あるセッションで作成された計算メンバーとその定義は、そのセッション後に削除されるため、他のセッションでは継続されません。

構文

MAINTAIN dimension ADD SESSION member_name [= calculation] -

      [STEP DIMENSION (stepdim...)][apply-to]

ここで、

  • calculationは次のいずれかです。

    model-equation
    AGGREGATION (dimension-members....)
  • apply-toは、次のいずれかの句を使用して、カスタム集計を追加する際の基礎を指定します。

    APPLY TO AGGMAP aggmaps
    APPLY FOR VARIABLE variables
    APPLY WITH RELATION relations

パラメータ

dimension

アタッチしたアナリティック・ワークスペースで定義されているディメンション。dimensionには、一意でない連結ディメンション、または一意および一意でない連結ディメンションのベース・ディメンション以外のすべての型のディメンションを指定できます。

ADD SESSION

ADD SESSIONは、一時計算メンバーのメンテナンスを示します。

member-name

一時計算メンバーの名前を指定します。

=

新しい計算メンバーを定義することを示します。

model-equation

カスタム・メンバー値を計算するための動的モデルとして使用する計算を指定するテキスト式。(モデル方程式の詳細は、SETコマンドを参照してください。)

AGGREGATION

指定したディメンション・メンバーを使用するカスタム集計として、一時計算メンバーを追加することを示します。この句は、dimensionでディメンション化した変数の集計仕様であるaggmapオブジェクトのRELATION文を変更します。したがって、AGGREGATION句を含むMAINTAIN ADD SESSION文には、APPLY WITH RELATION句も含まれている必要があります。

dimension-members

カスタム集計で使用する1つ以上のディメンション値を指定するテキスト式。リテラルで複数のディメンション・メンバーを指定する場合は、値をカンマで区切ります。

STEP DIMENSIONS

計算が時系列のファンクションであることを示します。

stepdim

時系列ファンクションの計算を行うディメンションを指定するテキスト式。リテラルで複数のディメンション名を指定する場合は、名前をカンマで区切ります。

APPLY TO AGGMAP

指定したaggmapオブジェクトで使用されるディメンションにのみ、一時計算メンバーを追加することを示します。

aggmaps

一時計算メンバーを追加する先の1つ以上のaggmapオブジェクトの名前を指定するテキスト式。リテラルで複数のaggmapオブジェクトを指定する場合は、名前をカンマで区切ります。一時計算メンバーは、指定したaggmapオブジェクトのそれぞれに追加されます。

APPLY FOR VARIABLE

指定したvariablesのデフォルトaggmapオブジェクトで使用されるディメンションにのみ、一時計算メンバーを追加することを示します。

variables

一時計算メンバーを追加する先の1つ以上の変数名を指定するテキスト式。リテラルで複数の変数名を指定する場合は、名前をカンマで区切ります。一時計算メンバーは、指定した変数のそれぞれのデフォルトaggmapオブジェクトに追加されます。


重要:

指定した変数にデフォルトのaggmapがない場合、この句を使用するとエラーが発生します。変数にデフォルトのaggmapを指定するには、AGGMAP SETまたは$AGGMAPを使用します。

APPLY WITH RELATION

指定したrelationのRELATION文を含む集計仕様で使用されるディメンションに、一時計算メンバーが追加されることを示します。

relation

AGGMAP文にRELATION文があるリレーションの名前を指定するテキスト式。

使用上の注意

一時計算メンバーについての情報の検索

MAINTAIN文で一時計算メンバーを追加した後、AGGMAPINFOを使用すると、追加した一時計算メンバー、メンバーの計算に使用される方程式、カスタム・メンバーを計算する方程式の右側で使用されるディメンション・メンバーをそれぞれ確認できます。

例10-42 集計値を使用した計算ディメンション・メンバーの作成

アナリティック・ワークスペースに、次の定義と永続値を持つletterというディメンションおよびmy_quantityという変数があるとします。

DEFINE letter DIMENSION TEXT
DEFINE my_quantity VARIABLE DECIMAL <letter>

LETTER                  MY_QUANTITY
-------------- ------------------------------
A                                       10.00
B                                      100.00

次の手順で、letterディメンションに一時ディメンション・メンバーを定義し、これらのメンバーのmy_quantityのデータを集計できます。

  1. 実行する集計を決定し、必要な補助オブジェクトを定義および移入します。

    1. letterディメンションに空の親子関係を作成します。

      DEFINE letter.parentrel RELATION letter <letter>
      
      LETTER                LETTER.PARENTREL
      -------------- ------------------------------
      A              NA
      B              NA
      
    2. letterディメンションと関連付けられている値を計算するために使用する簡単なモデルを定義します。

      DEFINE my_model MODEL
      MODEL 
        DIMENSION letter
       END
      
    3. letterディメンションと関連付けられているmy_quantity値を計算するために使用する簡単なaggmapを定義し、そのaggmapをコンパイルします。

      DEFINE my_aggmap AGGMAP
      AGGMAP 
         RELATION letter.parentrel PRECOMPUTE(NA)
         MODEL my_model PRECOMPUTE(NA)
        END
      
      COMPILE my_aggmap
      
    4. 変数を定義し、カスタム集計の定義を含めます。この新しい変数は、デフォルトのaggmapとしてmy_aggmapを持つことを除き、my_quantityと同一です。

      DEFINE my_quantity_definition VARIABLE DECIMAL <letter>
      
      CONSIDER my_quantity_definition
      PROPERTY '$AGGMAP' 'my_aggmap'
      
      REPORT my_quantity_definition
      
      LETTER             MY_QUANTITY_DEFINITION
      -------------- ------------------------------
      A                                          NA
      B                                          NA
      
  2. letterディメンションに一時メンバーを追加し、それらのメンバーに対する変数値の計算方法を指定します。

    MAINTAIN letter ADD SESSION 'C' = 'A' * 'B'
    MAINTAIN letter ADD SESSION 'D' = AGGREGATION('A', 'B') -
        APPLY TO AGGMAP my_aggmap
    MAINTAIN letter ADD SESSION 'E' = 'C' + 'D' -
        APPLY WITH RELATION letter.parentrel
    MAINTAIN letter ADD SESSION 'F' = 10 * 'E' -
        APPLY FOR VARIABLE my_quantity_definition
    

    letterディメンションのレポートに、新しいディメンション・メンバーが表示されます。

    LETTER
    --------------
    A
    B
    C
    D
    E
    F
    
  3. my_aggmapというaggmapオブジェクトを使用してmy_quantityを集計します。

    REPORT AGGREGATE(my_quantity USING my_aggmap)
    
                    AGGREGATE(MY_QUANTITY USING
    LETTER                   MY_AGGMAP)
    -------------- ------------------------------
    A                                       10.00
    B                                      100.00
    C                                    1,000.00
    D                                      110.00
    E                                    1,110.00
    F                                   11,100.00
    

ここで、UPDATE文とCOMMIT文を発行して、アナリティック・ワークスペースを更新およびコミットするとします。次に、アナリティック・ワークスペースをデタッチし、セッションを終了します。

その後、新しいセッションを開始し、同じアナリティック・ワークスペースをアタッチします。アナリティック・ワークスペースの説明を確認すると、UPDATEを発行した時点でアナリティック・ワークスペースにあったオブジェクトがすべてそのまま維持されていることがわかります。

DEFINE LETTER DIMENSION TEXT

DEFINE LETTER.PARENTREL RELATION LETTER <LETTER>

DEFINE MY_QUANTITY VARIABLE DECIMAL <LETTER>

DEFINE MY_MODEL MODEL
MODEL
DIMENSION letter
END

DEFINE MY_AGGMAP AGGMAP
AGGMAP
RELATION letter.parentrel PRECOMPUTE(NA)
MODEL my_model PRECOMPUTE(NA)
END

DEFINE MY_QUANTITY_DEFINITION VARIABLE DECIMAL <LETTER>

しかし、letterディメンションおよびmy_quantity変数についてのレポートを見ると、前のセッションで追加した一時ディメンション・メンバーと、それらのメンバーと関連するmy_quantity変数の値は存在していません。

LETTER
--------------
A
B

REPORT letter.parentrel

LETTER                LETTER.PARENTREL
-------------- ------------------------------
A              NA
B              NA

REPORT my_quantity

LETTER                  MY_QUANTITY
-------------- ------------------------------
A                                       10.00
B                                      100.00

LETTER             MY_QUANTITY_DEFINITION
-------------- ------------------------------
A                                          NA
B                                          NA

REPORT AGGREGATE(my_quantity USING my_aggmap)

                AGGREGATE(MY_QUANTITY USING
LETTER                   MY_AGGMAP)
-------------- ------------------------------
A                                       10.00
B                                      100.00

MAINTAIN ADD TO PARTITION

MAINTAIN ADD TO PARTITION文は、事前移入されたディメンション値またはコンポジット値を、事前定義されたパーティション・テンプレート・オブジェクトのパーティションに追加する文です。


ヒント:

パーティション変数がすでに移入されている場合は、MAINTAIN MOVE TO PARTITIONを使用してパーティション値をメンテナンスします。

構文

MAINTAIN partition-template ADD TO PARTITION partition valuelist

パラメータ

partition-template

事前定義されたパーティション・テンプレート・オブジェクトの名前を示すテキスト式。

ADD TO PARTITION

値をパーティションに追加することを指定します。

partition

partition-templateで指定したパーティション・テンプレートにある事前定義されたパーティションの名前を示すテキスト式。

valuelist

追加する値を指定するテキスト・リテラル、TEXT式またはID式。TEXT式の場合、各要素(行)は個別の値として処理されます。式の値は、入力したとおりに追加されます。

連結ディメンションの場合、連結ディメンションの値、もしくはコンポーネント・ディメンションの名前とそのディメンションの値または位置を指定できます。valueの値として、ディメンション・サロゲートの値を使用できます。

INTEGERディメンションのパーティション化はできないことに注意してください。

TO

値の範囲を示します。

パーティションへの値の追加の例は、例10-48「パーティション値の追加と削除」を参照してください。


MAINTAIN DELETE

MAINTAINコマンドでDELETEキーワードを使用すると、非連結ディメンションおよびコンポジットからメンバーを削除できます。または、変数をディメンション化するパーティション・テンプレートのパーティションに定義されているディメンション値またはコンポジット値を変更するために、事前にパーティション化した変数のデータをパーティションから削除します。


注意:

MAINTAIN DELETE文は、Maintainトリガーを持つサロゲート・ディメンションにも発行できます。この場合、Oracle OLAPでは、Maintainトリガー・プログラムのみが実行され、それ以外のアクションは行われません。詳細は、「トリガー・プログラム」を参照してください。Maintainトリガーのないサロゲート・ディメンションに対してMAINTAIN文を発行すると、エラーが返されます。

構文

MAINTAINコマンドのDELETEキーワードを使用してメンバーを削除する際の構文は、メンバーを削除するオブジェクトのタイプによって異なります。そのため、MAINTAIN DELETEについては、次のように個別に説明します。

ディメンションのMAINTAIN DELETE

MAINTAINコマンドでDELETEキーワードを使用すると、非連結ディメンションからディメンション・メンバーを削除できます。


注意:

MAINTAIN DELETE文は、Maintainトリガーを持つサロゲート・ディメンションにも発行できます。この場合、Oracle OLAPでは、Maintainトリガー・プログラムのみが実行され、それ以外のアクションは行われません。詳細は、「トリガー・プログラム」を参照してください。Maintainトリガーのないサロゲート・ディメンションに対してMAINTAIN文を発行すると、エラーが返されます。

構文

MAINTAIN dimension DELETE limit-clause

パラメータ

dimension

値が削除されるアタッチしたアナリティック・ワークスペースで定義されている非連結ディメンション。


注意:

MAINTAIN DELETEコマンドのdimension引数として、ディメンション・サロゲートは使用できません。ただし、limit-clauseパラメータ内で値としてディメンション・サロゲートを使用することは可能です。

limit-clause

ディメンションから削除する値を指定します。

limit-clauseの構文は、各種LIMITコマンドにおけるlimit-clause引数の構文(つまり、LIMITコマンドの「TO」などのlimit-type引数の後の構文)と同じです。これらの引数の構文については、LIMITコマンド(値を使用)LIMITコマンド(LEVELRELを使用)LIMIT(親リレーションを使用)LIMITコマンド(関連ディメンションを使用)LIMITコマンド(NOCONVERTを使用)およびLIMITコマンド(POSLISTを使用)を参照してください。

使用上の注意

ディメンションからの一時計算メンバーの削除

MAINTAIN DELETE文を使用して一時計算メンバーを削除すると、Oracle OLAPによって次の処理が実行されます。

  1. ディメンションからメンバーが削除されます。

  2. 対応する計算を含むすべてのaggmapオブジェクトから計算が削除されます。

INTEGERディメンションの値の削除

MAINTAINを使用してINTEGERディメンションの値を削除すると、INTEGER値の通常の順序(1、2、3...)になるように値の位置番号が変更されます。

例10-43 値によるディメンション値の削除

次の文では、cityの値からOmahaおよびNewarkを削除します。

MAINTAIN city DELETE 'Omaha' 'Newark'

例10-44 最初の5つのディメンション値の削除

この例では、INTEGER変数intvarを使用して、ディメンションcityから最初の5都市を削除します。

intvar = 5
MAINTAIN city DELETE FIRST intvar

例10-45 ブール式に基づくディメンション値の削除

ここでは、cityから、人口が75,000人より少ないすべての都市を削除します。各都市の人口のデータが含まれている、変数population.cを使用します。

MAINTAIN city DELETE population.c LT 75000

例10-46 サロゲートを使用して値を指定したディメンション値の削除

prodidNUMBERディメンションで、prodtypeprodidTEXTディメンション・サロゲートであるとします。また、prodidの値が、1740および56であるとします。prodtypeの値は、Two-Person TentThree-person TentおよびFour-person Tentです。次の文で、prodidおよびそのサロゲートから値を削除します。

MAINTAIN prodid DELETE prodid(prodtype 'Three-Person Tent')

例10-47 関連するMONTH値の削除

この例では、関連ディメンションquarterを使用して、ディメンションmonthの値を削除します。現行のステータス内にある月で、quarterの値に関連するすべての月を削除します。

LIMIT quarter TO FIRST 1

MAINTAIN month DELETE quarter

コンポジットのMAINTAIN DELETE

MAINTAINコマンドでDELETEキーワードを使用すると、コンポジットからディメンション・メンバーを削除できます。

構文

MAINTAIN composite DELETE comp-arg

ここで、comp-argは次のいずれか1つです。

valuelist
ALL
base-dim [valuelist]
boolean-expression
{TOP | BOTTOM} BASEDON exp
{TOP | BOTTOM} n-percent PERCENTOF expression
LONGLIST

パラメータ

composite

値を削除するコンポジット。コンポジットが名前付きコンポジットの場合、アタッチしたアナリティック・ワークスペースで定義されている必要があります。コンポジットが名前のないコンポジットの場合は、アタッチしたアナリティック・ワークスペースでオブジェクトの定義に使用されている必要があります。

名前のないコンポジットを参照するには、SPARSEキーワードを使用します(SPARSE  <market product>など)。

valuelist

コンポジットから削除する1つ以上の値を指定します。valuelistは、テキスト定数またはテキスト式です。

ALL

すべてのコンポジット値を削除しますが、コンポジット自体の定義は削除しません

base-dim [valuelist]

リストしたコンポジットのベース・ディメンション値を含む値を削除します。引数valuelistには、単一の値、値のリスト、または値の範囲(TOを使用して値範囲を指定)を指定できます。値の範囲の指定には、位置番号は使用できません。valuelistを指定しない場合、Oracle OLAPでは、現行のステータスにあるbase-dim値を含むすべての値が削除されます。

boolean-expression

ブール式がTRUEのすべてのコンポジット値を削除します。boolean-expressionは、値を削除するdimensionまたはcompositeによってディメンション化されている必要があります。また、他にもディメンションがある場合は、それらのステータスがそれぞれ1つの値に制限されている必要があります。

TOP n BASEDON exp
BOTTOM n BASEDON exp

expの最上位(TOP)または最下位(BOTTOM)に基づいて、上位または下位n個の値を削除します。式は、値を削除するcompositeによってディメンション化されている必要があります。また、他にもディメンションがある場合は、それらのステータスがそれぞれ1つの値に制限されている必要があります。

BOTTOM n-percent PERCENTOF expression
TOP n-percent PERCENTOF expression

ある基準に基づいて最上位または最下位の値を検索し、値を削除します。この構成では、値は式に対する占有率に基づいてソートされ、削除されます。

LONGLIST

削除する対象の個別の値の長いリスト(2,000値まで)を示します。値が300より少ない場合、LONGLISTは必要ありません。

MAINTAIN DELETE FROM PARTITION

MAINTAIN DELETE FROM PARTITIONコマンドは、変数をディメンション化するパーティション・テンプレートのパーティションに定義されているディメンション値またはコンポジット値を変更するために、事前にパーティション化した変数のデータをパーティションから削除するコマンドです。


ヒント:

パーティション変数がすでに移入されている場合は、MAINTAIN MOVE TO PARTITIONを使用してパーティション値をメンテナンスします。

構文

MAINTAIN partition-template DELETE FROM PARTITION partition { dim-arg| comp-arg}

パラメータ

partition-template

事前定義されたパーティション・テンプレート・オブジェクトの名前を示すテキスト式。

partition

partition-templateで指定したパーティション・テンプレートにある事前定義されたパーティションの名前を示すテキスト式。

DELETE FROM PARTITION

パーティションおよびそのパーティションを含むパーティション・テンプレートを使用してディメンション化したパーティション変数から削除する値を指定します。

dim-args

パーティション変数の値を削除して、パーティションの値を再定義する際に使用するディメンション値を指定します。ディメンションのMAINTAIN DELETEで使用するdim-arg引数に指定する構成を使用できます。

comp-args

パーティション変数の値を削除して、パーティションの値を再定義する際に使用するコンポジット値を指定します。コンポジットのMAINTAIN DELETEで使用するcomp-arg引数に指定する構成を使用できます。

例10-48 パーティション値の追加と削除

アナリティック・ワークスペースに次のオブジェクトが定義されているとします。

DEFINE time DIMENSION TEXT
DEFINE time_parentrel RELATION time <time>
DEFINE product DIMENSION TEXT
DEFINE partition_sales_by_year PARTITION TEMPLATE <time product> -
   PARTITION BY LIST (time) -
    (PARTITION time_2004 VALUES ('2004', 'Dec2004', 'Jan2004', '31Dec2004', - 
          '01Dec2004', '31Jan2004', '01Jan2004') <TIME PRODUCT> -
     PARTITION time_2003 VALUES ('2003', 'Dec2003', 'Jan2003', '31Dec2003', -
         '01Dec2003', '31Jan2003', '01Jan2003') <TIME PRODUCT> -
     PARTITION time_2002 VALUES ('2002', 'Dec2002', 'Jan2002', '31Dec2002', -
         '01Dec2002', '31Jan2002', '01Jan2002') <TIME PRODUCT>)

sales値がある年のすべての時刻値でディメンションされている値をパーティション内に含めるのではなく、各日付値およびサマリーの時刻値(月および年)ごとのパーティションが必要だとします。この新しいパーティション・スキーマが反映されるようにpartition_sales_by_yearを変更するには、次の文を発行します。

"Create the new partition
CHGDFN partition_sales_by_year DEFINE -
         (PARTITION partition_month_years VALUES () <time product>)
"Delete the values for months and years from the partitions for years
MAINTAIN partition_sales_by_year DELETE FROM PARTITION time_2004 '2004'- 
        'Dec2004' 'Jan2004'
MAINTAIN partition_sales_by_year DELETE FROM PARTITION time_2003 '2003'-
        'Dec2003''Jan2003'
MAINTAIN partition_sales_by_year DELETE FROM PARTITION time_2002 '2002'-
       'Dec2002' 'Jan2002'
"Add the month and year values to the new partition for summary values
MAINTAIN partition_sales_by_year ADD TO PARTITION partition_month_years '2004'-
      'Dec2004' 'Jan2004' '2003' 'Dec2003''Jan2003' '2002' 'Dec2002' 'Jan2002'

これによって、partition_sales_by_yearパーティション・テンプレート・オブジェクトの定義は次のようになります。

DEFINE PARTITION_SALES_BY_YEAR PARTITION TEMPLATE <TIME PRODUCT> -
   PARTITION BY LIST (TIME) -
    (PARTITION TIME_2004 VALUES ('31Dec2004', '01Dec2004', '31Jan2004', -
       '01Jan2004') <TIME PRODUCT> -
     PARTITION TIME_2003 VALUES ('31Dec2003', '01Dec2003', '31Jan2003', -
       '01Jan2003') <TIME PRODUCT> -
     PARTITION TIME_2002 VALUES ('31Dec2002', '01Dec2002', '31Jan2002', -
       '01Jan2002') <TIME PRODUCT> -
     PARTITION PARTITION_MONTH_YEARS VALUES ('2004', 'Dec2004', 'Jan2004', -
       '2003', 'Dec2003', 'Jan2003', '2002', 'Dec2002', 'Jan2002')-
         <TIME PRODUCT>)

MAINTAIN MERGE

MAINTAINコマンドでMERGEキーワードを使用すると、別のリスト上のすべてディメンション値またはコンポジット値を、非連結ディメンションまたはコンポジットに簡単かつ確実にまとめることができます。MAINTAINコマンドでMERGEキーワードを使用すると、自動でリストから新しい値のみが追加され、重複する値は無視されます。大量のディメンション値を入力する際、この方法で入力すると、時間を大幅に節約できます。

MERGEは、DAY、WEEK、MONTH、QUARTERおよびYEAR型のディメンションを含む、あらゆるデータ型のディメンションで使用できます。ただし、Oracle OLAPでは、DAY、WEEK、MONTH、QUARTERおよびYEAR型のディメンションの値の追加はADDキーワードでも簡単にできるため、これらのディメンションでは、MERGEキーワードはTEXTまたはID型のディメンションでの場合ほど有用でない場合もあります。

ディメンションに値をマージすると同時に、そのディメンションに関連するリレーションを更新することもできます。


注意:

MAINTAIN MERGE文は、Maintainトリガーを持つサロゲート・ディメンションにも発行できます。この場合、Oracle OLAPでは、Maintainトリガー・プログラムがexpの各値に対して1回ずつ実行され、それ以外のアクションは行われません。詳細は、「トリガー・プログラム」を参照してください。Maintainトリガーのないサロゲート・ディメンションに対してMAINTAIN文を発行すると、エラーが返されます。

構文

MAINTAIN dimension|composite MERGE exp [RELATE relation]

dimension

値を入力または変更するアタッチしたアナリティック・ワークスペースで定義されている非連結ディメンション。

composite

値を追加、削除またはマージするコンポジット。コンポジットが名前付きコンポジットの場合、アタッチしたアナリティック・ワークスペースで定義されている必要があります。コンポジットが名前のないコンポジットの場合は、アタッチしたアナリティック・ワークスペースでオブジェクトの定義に使用されている必要があります。名前のないコンポジットを参照するには、SPARSEキーワードを使用します(SPARSE <market product>など)。

exp

dimensionとマージする値の式を指定しますが、たとえば、ディメンション値を含むディメンション化されたテキスト変数の名前や、ディメンション値の複数行のリストを値とする単一セルのテキスト変数の名前などです。MAINTAIN MERGEでは、expのNAは無視されます。dimensionがINTEGERディメンションの場合は、expにはディメンションに必要な値の数を指定します。実際の合計数がそれより小さいと、MAINTAIN MERGEによって、指定した合計に達するまで値が追加されます。たとえば、INTEGERディメンションに位置が10ある場合、MERGE 5では操作は何も行われませんが、MERGE 15では値が5つ追加されます。

RELATE relation

expから新しい値をdimensionにマージする際に更新するリレーションを指定します。expのディメンションのうち1つ以上のディメンションが、relationの定義で定義されている必要があります。expが単一セル値の場合は、RELATE句は使用できません。

例10-49 コンポジットでのMERGEキーワードの使用

productディメンションの最初の3つの値とdistrictディメンションの最初の5つの値のすべての組合せで構成されるコンポジットを定義するとします。次の文を使用して、15個の値すべてを効率よくまとめることができます。

DEFINE comp_proddist COMPOSITE <product district>
LIMIT product TO FIRST 3
LIMIT district TO FIRST 5
MAINTAIN comp_proddist MERGE <product district>

この方法は、結合ディメンションでも利用できます。


MAINTAIN MOVE

MOVEキーワードを使用したMAINTAINコマンドの結果は、操作するオブジェクトによって異なります。

  • ディメンションをメンテナンスする場合、MAINTAIN MOVEによって、非連結ディメンションまたはTEXT型、ID型、INTEGER型のディメンションの1つ以上の値の位置が変更されるか、事前移入したディメンション値またはコンポジット値がパーティションに追加されます。


    注意:

    ディメンション値のMAINTAIN MOVE文は、Maintainトリガーを持つサロゲート・ディメンションにも発行できます。この場合、Oracle OLAPでは、Maintainトリガー・プログラムのみが実行され、それ以外のアクションは行われません。詳細は、「トリガー・プログラム」を参照してください。Maintainトリガーのないサロゲート・ディメンションに対してMAINTAIN文を発行すると、エラーが返されます。

  • パーティションをメンテナンスする場合は、MAINTAIN MOVEによって、変数をディメンション化するパーティション・テンプレートのパーティションに定義されているディメンション値またはコンポジット値を変更するために、事前にパーティション化した変数のデータがあるパーティションから別のパーティションに移動されます。

構文

MOVEキーワードを使用するMAINTAINコマンドの構文は、メンテナンスするオブジェクトのタイプによって異なります。

そのため、MAINTAIN MOVEについては、次のように個別に説明します。

ディメンション値のMAINTAIN MOVE

単純なMAINTAIN MOVE文で、非連結ディメンションまたはTEXT型、ID型、INTEGER型のディメンションの1つ以上の値の位置を変更できます。MAINTAINコマンドのMOVEキーワードは、コンポジットまたはDAY、WEEK、MONTH、QUARTER、YEAR型のディメンションでは使用できません。


注意:

MAINTAIN MOVE文は、Maintainトリガーを持つサロゲート・ディメンションにも発行できます。この場合、Oracle OLAPでは、Maintainトリガー・プログラムのみが実行され、それ以外のアクションは行われません。詳細は、「トリガー・プログラム」を参照してください。Maintainトリガーのないサロゲート・ディメンションに対してMAINTAIN文を発行すると、エラーが返されます。

構文

MAINTAIN dimension MOVE limit-clause

パラメータ

dimension

値を入力または変更するアタッチしたアナリティック・ワークスペースで定義されている非連結ディメンション。TEXT型、ID型またはINTEGER型のディメンションを指定する必要があります。DAY、WEEK、MONTH、QUARTER、YEAR型のディメンションは指定できません。

limit-clause

移動する値を指定します。

limit-clauseの構文は、各種LIMITコマンドにおけるlimit-clause引数の構文(つまり、LIMITコマンドの「TO」などのlimit-type引数の後の構文)と同じです。これらの引数の構文については、LIMITコマンド(値を使用)LIMITコマンド(LEVELRELを使用)LIMIT(親リレーションを使用)LIMITコマンド(関連ディメンションを使用)LIMITコマンド(NOCONVERTを使用)およびLIMITコマンド(POSLISTを使用)を参照してください。

使用上の注意

MAINTAIN MOVEのパフォーマンスに影響を与える要因

MAINTAIN MOVEコマンドを発行する場合のコスト・パフォーマンスは、移動される値の数ではなく、ディメンションの長さによって異なります。したがって、大きなディメンション内の値を移動する場合は、複数のMAINTAIN MOVE文を連ねて発行するかわりに、ディメンション・ステータスを目的の値に設定してから単独のMAINTAIN MOVEコマンドを発行してください。

ディメンション内の値の並べなおしまたはソート

MAINTAIN MOVE文を使用してディメンションの値を並べなおしたりソートしたりする場合、ステータスにあるディメンションの値すべてを使用するように指定するには、VALUESコマンドではなく、LIMIT(値を使用)コマンドlimit-clause引数のSTATUSキーワードを使用します。

例10-50 特定の位置へのディメンション値の移動

次の文によって、都市Houstonの位置が5番目の値の後に移動されます。

MAINTAIN city MOVE 'Houston' AFTER 5

例10-51 ステータス・リストの末尾へのディメンション値の移動

この例では、TEXT変数textvarを使用してSeattleを都市のリストの最後に移動します。

textvar = 'Seattle'
MAINTAIN city MOVE textvar LAST

例10-52 連結ディメンションの値の移動

次の文では、reg.dist.ccdimという連結ディメンションの値<district: 'Denver'>を、連結ディメンション値<region: 'West'>の後に移動します。

MAINTAIN reg.dist.ccdim MOVE <district: 'Denver'> AFTER <region: 'West'>

次の文では、連結ディメンション値<district: 'Denver'>を、コンポーネントのdistrictディメンションの最初の値に対応する位置の後に移動します。districtのステータスにある最初の値がAtlantaの場合、<district: 'Denver'>は、連結ディメンションの値<district: 'Atlanta'>の後に移動されます。

MAINTAIN reg.dist.ccdim MOVE <district: 'Denver'> AFTER <district: 1>

次の文では、連結ディメンション値<district: 'Dallas'>を連結ディメンションの3番目の値の後に移動します。

MAINTAIN reg.dist.ccdim MOVE <district: 'Dallas'> AFTER 3

MAINTAIN MOVE TO PARTITION

MAINTAIN MOVE TO PARTITION文は、追加機能と移動機能の両方を併せ持ちます。MAINTAIN MOVE TO PARTITION文を使用すると、次のことを実行できます。

  • MAINTAIN ADD TO PARTITIONと同様に、事前移入したディメンション値またはコンポジット値をパーティションに追加します。

  • 変数をディメンション化するパーティション・テンプレートのパーティションに対して定義されたディメンション値またはコンポジット値を変更し、同時に、それらのディメンションおよびコンポジットによってディメンション化されている事前にパーティション化した変数のデータを、あるパーティションから別のパーティションへ移動します。

構文

MAINTAIN partition-template MOVE TO PARTITION partition value [TO value]

パラメータ

partition-template

事前定義されたパーティション・テンプレート・オブジェクトの名前を示すテキスト式。

MOVE TO PARTITION

パーティションに追加される値、またはあるパーティションから別のパーティションに移動する値を指定します。

partition

partition-templateで指定したパーティション・テンプレートにある事前定義されたパーティションの名前を示すテキスト式。

value

事前移入したディメンションまたはコンポジットの1つ以上の値を指定します。これらの値には、次のものを指定できます。

  • リテラル値

  • ディメンション値を値とする式

  • NUMBERディメンション以外のディメンションの場合、ディメンション値の位置を表す値のINTEGER

  • 値セット、またはLIMITファンクション

連結ディメンションの場合、連結ディメンションの値、もしくはコンポーネント・ディメンションの名前とそのディメンションの値または位置を指定できます。valueの値として、ディメンション・サロゲートの値を使用できます。

TO

値の範囲を示します。

例10-53 値セットを使用したパーティションの値の指定

各パーティションに実際のディメンション値を指定しない、次のような定義を使用して、パーティション・テンプレート・オブジェクトを定義したとします。

DEFINE PARTITION_SALES_BY_YEAR PARTITION TEMPLATE <TIME PRODUCT> -
   PARTITION BY LIST (TIME) -
    (PARTITION TIME_2004 VALUES () <TIME PRODUCT> -
     PARTITION TIME_2003 VALUES () <TIME PRODUCT> -
     PARTITION TIME_2002 VALUES () <TIME PRODUCT>)

値セットを使用して各パーティションの値を指定するには、次の手順に従います。

  1. 各年の値の値セットを定義します。

    DEFINE vs_2004 VALUESET time
    LIMIT vs_2004 to '01Dec2004' '31Dec2004' '01Jan2004''31Jan2004' -
         'Jan2004' 'Dec2004' '2004'
    DEFINE vs_2003 VALUESET time
    LIMIT vs_2003 to '01Dec2003' '31Dec2003' '01Jan2003''31Jan2003' -
         'Jan2003' 'Dec2003' '2003'
    DEFINE vs_2002 VALUESET time
    LIMIT vs_2002 to '01Dec2002' '31Dec2002' '01Jan2002''31Jan2002' -
         'Jan2002' 'Dec2002' '2002'
    
  2. MAINTAIN MOVE文を使用して、パーティション・テンプレートのパーティションの値を指定します。

    MAINTAIN partition_sales_by_year MOVE TO PARTITION time_2004 vs_2004
    MAINTAIN partition_sales_by_year MOVE TO PARTITION time_2003 vs_2003
    MAINTAIN partition_sales_by_year MOVE TO PARTITION time_2002 vs_2002
    

DESCRIBE文を発行してpartition_sales_by_yearパーティション・テンプレートの説明を見ると、各パーティション定義に適切なtimeの値が含まれていることがわかります。

DEFINE PARTITION_SALES_BY_YEAR PARTITION TEMPLATE <TIME PRODUCT> - 
    PARTITION BY LIST (TIME) -
    (PARTITION TIME_2004 VALUES -
('2004','Dec2004','Jan2004', 31Dec2004',01Dec2004','31Jan2004','01Jan2004')-
     PARTITION TIME_2003 VALUES -
('2003','Dec2003','Jan2003', 31Dec2003',01Dec2003','31Jan2003','01Jan2003')-
      PARTITION TIME_2002 VALUES -
                     ('2002','Dec2002','Jan2002', 31Dec2002',01Dec2002','31Jan2002','01Jan2002'))

MAINTAIN RENAME

MAINTAINコマンドでRENAMEキーワードを使用すると、1つ以上のディメンション値のスペルを変更できます。RENAMEキーワードは、コンポジットまたはINTEGER、DAY、WEEK、MONTH、QUARTER、YEAR型のディメンションでは使用できません。


注意:

MAINTAIN RENAME文は、Maintainトリガーを持つサロゲート・ディメンションにも発行できます。この場合、Oracle OLAPでは、Maintainトリガー・プログラムのみが実行され、それ以外のアクションは行われません。詳細は、「トリガー・プログラム」を参照してください。Maintainトリガーのないサロゲート・ディメンションに対してMAINTAIN文を発行すると、エラーが返されます。

構文

MAINTAIN dimension RENAME {value new-value}...

パラメータ

dimension

値の名前の変更対象になるアタッチしたアナリティック・ワークスペースにすでに定義されているTEXT型またはID型の非連結ディメンション。INTEGER、DAY、WEEK、MONTH、QUARTER、YEAR型のディメンションは指定できません。

value

名前を変更する既存のディメンション値を指定します。ディメンション値、ディメンション値を値とする文字式、またはディメンション値の位置を表すINTEGER式を指定できます。

new-value

ディメンション値の新しいスペルを示すテキスト定数、TEXT式またはID式。

例10-54 TEXTディメンションの値の名前変更

次の文では、都市ChicおよびBostのスペルをChicagoおよびBostonに変更します。

MAINTAIN city RENAME 'Chic' 'Chicago' 'Bost' 'Boston'

この例では、TEXT変数textvarを使用して、2番目の都市をAtlantaに変更します。

textvar = 'Atlanta'
MAINTAIN city RENAME 2 textvar