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

前
 
次
 

ARG

OLAP DMLプログラムの内部でARGファンクションを使用すると、プログラムに渡される引数を参照できます。このファンクションは、1つの引数をテキスト値として返します。


注意:

通常は、プログラムに渡される引数の参照にARGファンクションを使用しなくても済むよう、ARGUMENT文を使用して、プログラム内で引数を定義します。プログラムに渡される引数をARGUMENTを使用して定義する方法の詳細は、「プログラムに渡される引数の宣言」を参照してください。

戻り値

TEXT

構文

ARG(n)

パラメータ

n

参照する引数の位置に応じた数値。ARG(1)を指定するとプログラムの最初の引数が返され、ARG(2)を指定するとプログラムの2番目の引数が返されます(以降同様)。プログラムによってコールされる引数の数がn個未満の場合、ARGはNULL値を返します。また、ARGはnの値がゼロまたは負の値の場合にもNULL値を返します。

例7-20 引数の代入

売上レポートを生成するプログラムがあるとします。任意の2つの期間(月単位)を対象にしてレポートを生成できるようにするため、プログラム内ではmonthディメンションを特定の月に制限しないことにします。そのかわりに、ARGファンクションをLIMITコマンド内で使用し、2か月間の開始月と終了月は、プログラムの実行時に引数で指定するようにします。

ARGファンクションの前にはUPCASEファンクションが記述されています。UPCASEファンクションを使用すると、アナリティック・ワークスペース内のディメンション値が大文字で指定されている場合、引数を大文字または小文字で指定できます。&(アンパサンド)を接頭辞として使用した場合、Oracle OLAPは、LIMITコマンドの実行前にARGの値(この場合はmonthディメンションの値)を置換すると判断するため、同様の効果があります。ただし、&(アンパサンド)が付いているプログラム行はコンパイルできないので、プログラムの実行結果の表示速度が遅くなるというデメリットがあります。

DEFINE salesrpt PROGRAM
PROGRAM
PUSH month product district
TRAP ON cleanup 
LIMIT month TO UPCASE(ARG(1)) TO UPCASE(ARG(2))
LIMIT product TO 'CANOES'
LIMIT district TO all
REPORT grandtotals DOWN district sales
LIMIT month TO UPCASE(ARG(3)) TO UPCASE(ARG(4))
REPORT grandtotals DOWN district sales
cleanup:
POP month product district
END

このプログラムを実行するには、プログラム名(salesrpt)を指定し、その後に2組の月(レポートの対象となる売上期間の開始月と終了月)を指定します。その後、LIMIT MONTH文を実行すると、コマンドラインに指定した月は、LIMITコマンドのARG(1)ARG(2)ARG(3)およびARG(4)の戻り値として渡されます。

salesrpt 'Jan95' 'Mar95' 'Jan96' 'Mar96'

この文によって生成される出力は、次のとおりです。

PRODUCT: Canoes
              ------------SALES--------------
              ------------MONTH--------------
DISTRICT        Jan95       Feb95     Mar95
---------------------------------------------
Boston        66,013.92  76,083.84  91,748.16
Atlanta       49,462.88  54,209.74  67,764.20
Chicago       45,277.56  50,595.75  63,576.53
Dallas        33,292.32  37,471.29  43,970.59
Denver        45,467.80  51,737.01  58,437.11
Seattle       64,111.50  71,899.23  83,943.86
             ----------  ---------  ---------
             303,625.98 341,996.86 409,440.44
             ========== ========== ==========
PRODUCT: Canoes
             ------------SALES---------------
             ------------MONTH---------------
DISTRICT        Jan96      Feb96       Mar96
---------------------------------------------
Boston        70,489.44  82,237.68  97,622.28
Atlanta       56,271.40  61,828.33  77,217.62
Chicago       48,661.74  54,424.94  68,815.71
Dallas        35,244.72  40,218.43  46,810.68
Denver        44,456.41  50,623.19  57,013.01
Seattle       67,085.12  74,834.29  87,820.04
             ----------  ---------  ---------
             322,208.83 364,166.86 435,299.35
             ========== ========== ==========