この項の内容:
この章の情報は、ブロック・ストレージ・データベースのみに適用され、集約ストレージ・データベースとは関係がありません。集約ストレージとブロック・ストレージの比較。も参照してください。
カスタム定義マクロを使用すると、複数の計算関数を単一の関数に結合できます。
カスタム定義マクロを開発してテストするときには、テスト・アプリケーション内にローカルに新しいマクロを作成してテストします。カスタム定義マクロは、テスト・アプリケーションでのテストが完了し、本番環境で使用できる状態になった後にのみ、グローバルに登録します。
カスタム定義マクロを作成および管理するには、データベース・マネージャ以上のセキュリティ・レベルが必要です。
カスタム定義マクロに名前を付けるときには次のガイドラインに従います:
マクロ名は、たとえば@MYMACROのように、@記号で始めます。名前の残りの部分には、文字、数字および記号(@、#、$、_)を使用します。スペースはマクロ名に使用しないでください。
マクロには一意の名前を付けます。また、マクロ名は、カスタム定義関数の名前、および既存の計算関数の名前とも異なる必要があります。
注: | アプリケーションにグローバル・マクロと同じ名前のローカル・マクロが含まれている場合、ローカル・マクロが優先され計算に使用されます。 |
ローカル・マクロの場合、マクロ名の先頭にアプリケーション名を付けて、アプリケーション名とマクロ名をピリオドで区切る必要があります:
AppName .@ MacroName
例:
Sample.@MYMACRO
グローバル・マクロは、そのマクロが作成されたEssbaseサーバー上で実行されているすべてのアプリケーションで使用できるので、アプリケーション名を割り当てる必要はありません。
カスタム定義マクロを作成すると、Essbaseによってマクロ定義が記録され、マクロのカタログに保管されます。マクロは、カタログから削除されるまでの間、式と計算スクリプトで使用できます。
ローカルとして。この場合、マクロが作成されたEssbaseアプリケーションでのみそのマクロを使用できます
グローバルとして。この場合、マクロが作成されたEssbaseサーバー上で実行されているすべてのEssbaseアプリケーションでそのマクロを使用できます
次のMaxLステートメントによって、Sampleアプリケーションで使用するための@COUNTRANGEという名前のローカル・マクロが作成されます:
create macro Sample.'@COUNTRANGE'(Any) AS '@COUNT(SKIPMISSING, @RANGE(@@S))' spec '@COUNTRANGE(MemberRange)' comment 'counts all non-missing values';
次のMaxLステートメントによって、@COUNTRANGEという名前のグローバル・マクロが作成されます:
create macro'@COUNTRANGE'(Any) AS '@COUNT(SKIPMISSING, @RANGE(@@S))' spec '@COUNTRANGE(MemberRange)' comment 'counts all non-missing values';
ツール |
トピック |
場所 |
---|---|---|
Administration Services |
カスタム定義マクロの編集 |
Oracle Essbase Administration Services Online Help |
MaxL |
『Oracle Essbaseテクニカル・リファレンス』 |
次のMaxLステートメントによって、Sampleアプリケーションでのみ使用されているローカル・マクロ@COUNTRANGEが変更されます:
create or replace macro Sample.'@COUNTRANGE'(Any) as '@COUNT(SKIPMISSING, @RANGE(@@S))';
次のMaxLステートメントによって、グローバル・マクロ@COUNTRANGEが変更されます:
create or replace macro '@COUNTRANGE'(Any) as '@COUNT(SKIPMISSING, @RANGE(@@S))';
グローバル・カスタム定義マクロを削除する手順は、ローカル・カスタム定義マクロを削除する手順よりも複雑なので、DBAによってのみ実行する必要があります。
カスタム定義マクロを削除するには:
マクロがローカルとグローバルのどちらで登録されているかを確認します。
カスタム定義マクロの表示を参照してください。
そのマクロが関連付けられていたすべてのアプリケーションを再起動します。
カスタム定義マクロのカタログのリフレッシュを参照してください。
次のMaxLステートメントによって、Sampleアプリケーションでのみ使用されているローカル・マクロ@COUNTRANGEが削除されます:
drop macro Sample.'@COUNTRANGE';
次のMaxLステートメントによって、グローバル・マクロ@COUNTRANGEが削除されます:
drop macro '@COUNTRANGE';
マクロを追加、更新または削除するときに、カスタム定義マクロのカタログをリフレッシュします。