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

前
 
次
 

UNRAVEL

UNRAVELファンクションは、代入文と組み合せて使用し、式のディメンションが変数のディメンションと異なる場合に、式の値を変数のセルにコピーするファンクションです。

代入文を使用して作成した代入文は、ターゲット変数のディメンション・ステータスをループ処理することにより、UNRAVELから取得した値を代入します。変数の定義にリストされている最初のディメンションは、最も速く変化します。UNRAVELは、式の値を同じように取得し、最も速く変化する最初のディメンションを持つ式のディメンション・ステータスをループ処理します。UNRAVELによる値の取得順序を変更するには、ループ処理の対象となるディメンションを指定します。

戻り値

UNRAVELから返されるデータ型は、式で指定された値のデータ型になります。

構文

UNRAVEL(expression [dimension1...])

パラメータ

expression

コピーの対象となる値が属している式。

dimension

ループ処理の対象となる1つ以上のディメンションを指定します。最初に指定したディメンションは、データが解読されると、最も速く変化します。

UNRAVELでディメンションを指定すると、デフォルトのループ処理順序や式を解読する範囲が変更されます。デフォルトでは、式のすべてのディメンションが解読の範囲です。ただし、式のすべてのディメンションではなく一部を指定した場合、指定しなかったディメンションは解読されません。そのかわりに、解読される値は、省略した各ディメンションの最初の値のみになります。

使用上の注意

ワークシート・データの移動

UNRAVELの一般的な用途の1つは、ワークシートから変数へのデータの移動で、これは、ワークシートのディメンションは、通常、変数のディメンションとは異なるためです。例8-157「ワークシートから変数へのデータのコピー」を参照してください。

追加のターゲット・セルの埋込み

代入文が式の最後の値を使用した後に、(この代入文を使用して作成した)埋込みを目的とする代入文のターゲットにセルが残っている場合、UNRAVELは最初の値から埋込みをやり直します。

ステータスの設定

解読した値を代入する順序は、変数と式の両方のディメンションの現行のステータスによって決まるため、セルが適合するように、適切なLIMITコマンドを指定していることを確認してください。

データ値の代入

データ値の代入方法は、SETを参照してください。

例8-157 ワークシートから変数へのデータのコピー

あるアナリティック・ワークスペースで、一部の製品の価格データをスプレッドシートからワークシートにインポートしました。ここで、newpriceという変数にデータを送信します。pricedataというワークシートのレポートを生成するには、次の文を発行します。

LIMIT wksrow TO 1 TO 6
LIMIT wkscol TO 1 2 3
REPORT pricedata

これが生成されたレポートです。

               -----------PRICEDATA------------
               -------------WKSCOL-------------
WKSROW             1          2          3
-------------- ---------- ---------- ----------
             1            Jan95      Jan96
             2 Tents          191.39     194.00
             3 Canoes         279.92     300.00
             4 Racquets        83.34      85.00
             5 Sportswear     107.90     110.00
             6 Footwear       183.18     195.00

行1には月のラベルが、列1には製品のラベルがそれぞれ入っていることがわかります。変数newpriceは、その定義に示すように、monthおよびproductによってディメンション化されています。

DEFINE newprice VARIABLE DECIMAL <month product>
LD Wholesale Unit Selling Price

ワークシートのディメンション(wkscolおよびwksrow)はnewpriceのディメンションとは異なりますが、ワークシートに格納されているデータは変数への転送に適した形に編成されています。

ただし、ワークシートのすべての行および列からデータを取得するわけではないため、wkscolおよびwksrowを、価格データ自体が格納されている行と列に制限します。

LIMIT wkscol TO 2 3
LIMIT wksrow TO 2 TO 6

また、変数newpriceに値を設定するのは、1995年1月と1996年1月のみです。したがって、まずmonthをこれらの値に制限してから、UNRAVELを使用して代入文を入力し、ワークシートから変数へ値を移動します。

LIMIT month TO 'Jan95' 'Jan96'
newprice = UNRAVEL(pricedata)

wkscolは最も変化の速いディメンションであるため、UNRAVELファンクションのディメンションを指定する必要はありません。したがって、2つの月とも、最初の製品の価格データを解読してから2番目の製品に移ります。この変数の最も変化の速いディメンションはmonthであるため、SETによって変数に代入される値の順序は同じになります。

newpriceのレポートは次のようになります。

               ------NEWPRICE-------
               --------MONTH--------
PRODUCT          Jan95      Jan96
-------------- ---------- ----------
Tents              191.39     194.00
Canoes             279.92     300.00
Racquets            83.34      85.00
Sportswear         107.90     110.00
Footwear           183.18     195.00