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

前
 
次
 

Oracle OLAPによって検索されるユーザー作成のプログラム

Oracle OLAPでは、次の名前を持つOracle OLAPプログラムが検索され、各プログラムに関する項で説明されているとおりに実行されます。


AUTOGO
ONATTACH
ONDETACH
PERMIT_READ
PERMIT_WRITE
TRIGGER_AFTER_UPDATE
TRIGGER_AW
TRIGGER_BEFORE_UPDATE
TRIGGER_DEFINE

AUTOGO

AUTOGOプログラムは、ユーザーが作成できるプログラムであり、AW ATTACHコマンドの実行時には、Oracle OLAPによってその名前の確認が行われます。

AUTOGOというプログラムを含むアナリティック・ワークスペースをアタッチすると、AW ATTACH文にNOAUTOGO句を指定した場合または別の名前のプログラムを指定するAUTOGO句を記述した場合を除き、Oracle OLAPによってONATTACHプログラムが実行されます。


注意:

ユーザーがアナリティック・ワークスペースをアタッチすると、Oracle OLAPではこのプログラムとその他のプログラムの有無が確認されます。詳細は、「起動プログラム」を参照してください。

戻り値

BOOLEAN

Oracle OLAPがアナリティック・ワークスペースを正常に設定してアタッチした場合はTRUE、そうでない場合およびAUTOGOプログラムに例外が発生した場合はFALSEです。


注意:

戻り値としてFALSEを発生させるために例外に依存せずに、正常な戻り値を使用することをお薦めします。

構文

AUTOGOという名前のプログラムを定義するには、DEFINE PROGRAMに示す構文を使用します。実際のプログラムは、次の引数を持つユーザー定義ファンクションとしてコーディングします。

AUTOGO (password)

パラメータ

passwordの詳細は、AW ATTACHを参照してください。

アタッチ・プログラムの動作例は、例9-50「起動プログラム」を参照してください。


ONATTACH

ONATTACHプログラムは、ユーザーが作成できるプログラムであり、AW ATTACHコマンドの実行時には、Oracle OLAPによってその名前の確認が行われます。

ONATTACHというプログラムを含むアナリティック・ワークスペースをアタッチすると、AW ATTACH文にNOONATTACH句を指定した場合または別の名前のプログラムを指定するONATTACH句を記述した場合を除き、Oracle OLAPによってONATTACHプログラムが実行されます。

onattachプログラム内の文に応じて、特定のオブジェクトまたはオブジェクト値のセットに対するユーザーのアクセスが許可される場合と拒否される場合とがあります。マルチライタ・モードでのアタッチでは、ACQUIREコマンドを使用して個々のワークスペース・オブジェクトにアクセスできます。読取り専用モードおよび読取り/書込みモードでのアタッチでは、個々のワークスペース・オブジェクトへのアクセスを許可または制限するPERMITコマンドを使用できます。特定のonattachプログラム内で参照されるすべてのオブジェクトは、同じアナリティック・ワークスペース内に存在する必要があります。


注意:

ユーザーがアナリティック・ワークスペースをアタッチすると、Oracle OLAPではこのプログラムとその他のプログラムの有無が確認されます。詳細は、「起動プログラム」を参照してください。

戻り値

BOOLEAN

Oracle OLAPがアナリティック・ワークスペースを正常に設定してアタッチした場合はTRUE、そうでない場合およびonattachプログラムに例外が発生した場合はFALSEです。


注意:

戻り値としてFALSEを発生させるために例外に依存せずに、正常な戻り値を使用することをお薦めします。

構文

ONATTACHという名前のプログラムを定義するには、DEFINE PROGRAMに示す構文を使用します。実際のプログラムは、次の引数を持つユーザー定義ファンクションとしてコーディングします。

ONATTACH ({READ|WRITE|EXCLUSIVE|MULTI} password)

パラメータ

アタッチ・モード(READ、WRITE、EXCLUSIVE、MULTI)およびpasswordの説明は、AW ATTACHを参照してください。

使用上の注意

OLAP APIによって作成されたONATTACHプログラム

アナリティック・ワークスペースがOLAP APIを使用してOLAPキューブとして作成されている場合、OLAP APIによってONATTACHという名前のプログラムが作成されている場合もあります。このように自動的に作成されたONATTACHプログラムは変更できません。また、このONATTACHの実行を無効にすることはお薦めしません。

したがって、アナリティック・ワークスペースにこのタイプのONATTACHプログラムが存在する場合は、別のタイプの起動プログラムを作成して、アナリティック・ワークスペースがアタッチされているときに実行する動作を指定してください。

アタッチ・プログラムの動作例は、例9-50「起動プログラム」を参照してください。


ONDETACH

ONDETACHプログラムは、ユーザーが作成できるプログラムであり、AW DETACHコマンドの実行時には、Oracle OLAPによってその名前の確認が行われます。さらにOracle OLAPでは、プログラムからの戻り値に応じて、アナリティック・ワークスペースがデタッチされた直後にプログラム内のコードが実行されます。


注意:

ユーザーがアナリティック・ワークスペースをアタッチすると、Oracle OLAPではその他のプログラムの有無が確認されます。詳細は、「起動プログラム」を参照してください。

戻り値

BOOLEAN

Oracle OLAPにおいてアナリティック・ワークスペースのデタッチが正常に行われた場合はTRUE、そうでない場合およびdetachプログラムに例外が発生した場合はFALSEです。


注意:

戻り値としてFALSEを発生させるために例外に依存せずに、正常な戻り値を使用することをお薦めします。

構文

ONDETACHという名前のプログラムを定義するには、DEFINE PROGRAMに示す構文を使用します。


PERMIT_READ

PERMIT_READプログラムは、ユーザーが作成できるプログラムであり、AW ATTACH読取り専用コマンドの実行時には、Oracle OLAPによりその名前の確認が行われます。プログラムからの戻り値に応じて、Oracle OLAPは、アナリティック・ワークスペースのアタッチ後にプログラム内部のコードを実行します。permit_readプログラム内の文に応じて、特定のオブジェクトまたはオブジェクト値のセットに対するユーザーのアクセスが許可される場合と拒否される場合とがあります。permit_readプログラム内では、個々のワークスペース・オブジェクトへのアクセス権を付与または制限するPERMITコマンドを指定できます。特定のpermit_readプログラム内で参照されるすべてのオブジェクトは、同じアナリティック・ワークスペース内に存在する必要があります。


注意:

ユーザーがアナリティック・ワークスペースをアタッチすると、Oracle OLAPではこのプログラムとその他のプログラムの有無が確認されます。詳細は、「起動プログラム」を参照してください。


関連項目:

PERMITERRORオプション、PERMITREADERRORオプションおよびPERMIT_WRITEプログラム

戻り値

BOOLEAN

Oracle OLAPがアナリティック・ワークスペースを正常に設定してアタッチした場合はTRUE、そうでない場合およびpermit_readプログラムに例外が発生した場合はFALSEです。


注意:

戻り値としてFALSEを発生させるために例外に依存せずに、正常な戻り値を使用することをお薦めします。

構文

PERMIT_READという名前のプログラムを定義するには、DEFINE PROGRAMに示す構文を使用します。実際のプログラムは、次の引数を持つユーザー定義ファンクションとしてコーディングします。

PERMIT_READ (password)

パラメータ

passwordの詳細は、AW ATTACHを参照してください。アナリティック・ワークスペースのアタッチ時にユーザーがパスワードを指定すると、そのパスワードはプログラムへの引数として渡されて処理されます。

アナリティック・ワークスペースがアタッチされるときに権限プログラムが実行される順序については、例9-50「起動プログラム」を参照してください。


PERMIT_WRITE

PERMIT_WRITEプログラムは、ユーザーが作成できるプログラムであり、AW ATTACH読取り/書込みコマンドの実行時には、Oracle OLAPによりその名前の確認が行われます。プログラムからの戻り値に応じて、Oracle OLAPは、アナリティック・ワークスペースのアタッチ後にプログラム内部のコードを実行します。permit_writeプログラム内の文に応じて、特定のオブジェクトまたはオブジェクト値のセットに対するユーザーのアクセスが許可される場合と拒否される場合とがあります。permit_writeプログラム内では、個々のワークスペース・オブジェクトへのアクセス権を付与または制限するPERMITコマンドを指定できます。特定のpermit_writeプログラム内で参照されるすべてのオブジェクトは、同じアナリティック・ワークスペース内に存在する必要があります。


注意:

ユーザーがアナリティック・ワークスペースをアタッチすると、Oracle OLAPではこのプログラムとその他のプログラムの有無が確認されます。詳細は、「起動プログラム」を参照してください。


関連項目:

PERMITERRORオプション、PERMITREADERRORオプションおよびPERMIT_READプログラム

戻り値

BOOLEAN

Oracle OLAPがアナリティック・ワークスペースを正常に設定してアタッチした場合はTRUE、そうでない場合およびpermit_writeプログラムに例外が発生した場合はFALSEです。


注意:

戻り値としてFALSEを発生させるために例外に依存せずに、正常な戻り値を使用することをお薦めします。

構文

PERMIT_WRITEという名前のプログラムを定義するには、DEFINE PROGRAMに示す構文を使用します。実際のプログラムは、次の引数を持つユーザー定義ファンクションとしてコーディングします。

PERMIT_WRITE (password)

パラメータ

passwordの詳細は、AW ATTACHを参照してください。アナリティック・ワークスペースのアタッチ時にユーザーがパスワードを指定すると、そのパスワードはプログラムへの引数として渡されて処理されます。

アナリティック・ワークスペースがアタッチされるときに権限プログラムが実行される順序については、例9-50「起動プログラム」を参照してください。


TRIGGER_AFTER_UPDATE

TRIGGER_AFTER_UPDATEプログラムは、ユーザーが作成できるプログラムであり、アナリティック・ワークスペースに対するUPDATEコマンドの実行時には、Oracle OLAPによって名前の確認が行われます。このプログラムは、更新中のアナリティック・ワークスペースと同じワークスペースに存在する場合、UPDATEの実行後に実行されます。


注意:

TRIGGER_AFTER_UPDATEプログラムを実行するには、USETRIGGERSオプションをそのデフォルト値であるTRUEに設定する必要があります。

構文

TRIGGER_AFTER_UPDATEという名前のプログラムを作成するには、「トリガー・プログラム」で示すガイドラインに従います。

例6-1 TRIGGER_AFTER_UPDATEプログラム

アナリティック・ワークスペースで次のようにプログラムを定義したとします。

DEFINE TRIGGER_AFTER_UPDATE PROGRAM
PROGRAM
SHOW JOINCHARS ('calltype = ' CALLTYPE)
SHOW JOINCHARS ('triggering event = ' TRIGGER(EVENT))
SHOW JOINCHARS ('triggering subevent = ' TRIGGER(SUBEVENT))
END
 

UPDATE文を発行すると、このプログラムが実行され、次の出力が表示されます。

calltype = TRIGGER
triggering event = AFTER_UPDATE
triggering subevent = AW

TRIGGER_AW

TRIGGER_AWプログラムは、アナリティック・ワークスペース内でユーザーが作成できるプログラムです。そのアナリティック・ワークスペースが現行のアナリティック・ワークスペースであり、かつ別のアナリティック・ワークスペースを作成、アタッチ、デタッチまたは削除した場合には、Oracle OLAPによってその名前の確認が行われます。


注意:

ユーザーがアナリティック・ワークスペースをアタッチすると、Oracle OLAPではこのプログラムとその他のプログラムの有無が確認されます。詳細は、「起動プログラム」を参照してください。

戻り値

なし。

構文

TRIGGER_AWという名前のプログラムは、「TRIGGER_AWプログラムの作成方法」に示すガイドラインに従って作成します。

使用上の注意

TRIGGER_AWプログラムの作成方法

TRIGGER_AWプログラムは、次の手順に従って作成します。

  1. プログラムを定義します(DEFINE PROGRAMを参照)。

  2. プログラムの名前としてTRIGGER_AWを指定します。

  3. プログラムを実際にコーディングします(「プログラム内容の指定」を参照)。


    注意:

    再帰的トリガーはサポートされていません。TRIGGER_AWプログラムの内部でAW文を発行する場合は、その前にUSETRIGGERSオプションをNOに設定しておく必要があります。

例6-2 TRIGGER_AWプログラム

my_awという名前のアナリティック・ワークスペースに、次の定義を持つプログラムが定義されているとします。

DEFINE TRIGGER_AW PROGRAM
PROGRAM
SHOW CALLTYPE
SHOW TRIGGER(EVENT)
SHOW TRIGGER(SUBEVENT)
SHOW TRIGGER(NAME)
END

my_awワークスペースをアタッチすると、指定された値が表示されます。

AW ATTACH MY_AW

TRIGGER
AW
ATTACH
MY_AW 

TRIGGER_BEFORE_UPDATE

TRIGGER_BEFORE_UPDATEプログラムは、ユーザーが作成できるプログラムであり、UPDATEコマンドの実行時には、Oracle OLAPによって名前の確認が行われます。このプログラムは、更新中のアナリティック・ワークスペースと同じワークスペースに存在する場合にOracle OLAPによって実行され、プログラムの戻り値(存在する場合)に応じて、ワークスペースが更新される場合とされない場合があります。


注意:

TRIGGER_BEFORE_UPDATEプログラムを実行するには、USETRIGGERSオプションをそのデフォルト値であるTRUEに設定する必要があります。

戻り値

プログラムは、BOOLEAN値を返すファンクションとして作成できます。この場合には、プログラムからの戻り値がFALSEのとき、TRIGGER_BEFORE_UPDATEプログラムの実行をトリガーしたUPDATE文は実行されず、プログラムからの戻り値がTRUEまたはNAのときは、UPDATE文が実行されます。

構文

TRIGGER_UPDATEという名前のプログラムを作成するには、「トリガー・プログラム」で示すガイドラインに従います。

例6-3 TRIGGER_BEFORE_UPDATEプログラム

myawというアナリティック・ワークスペースに、次の定義を持つTRIGGER_BEFORE_UPDATEプログラムが存在するとします。

DEFINE TRIGGER_BEFORE_UPDATE PROGRAM BOOLEAN
PROGRAM
SHOW JOINCHARS ('calltype = ' CALLTYPE)
SHOW JOINCHARS ('triggering event = ' TRIGGER(EVENT))
SHOW JOINCHARS ('triggering subevent = ' TRIGGER(SUBEVENT))
RETURN TRUE
END
 

myvarというTEXT変数を定義して、UPDATE文を発行するとします。TRIGGER_BEFORE_UPDSATEプログラムが実行されます。

calltype = TRIGGER
triggering event = BEFORE_UPDATE
triggering subevent = AW

このプログラムからの戻り値はTRUEであるため、myvarの定義は、ワークスペースをデタッチして再アタッチした後にも存在します。

AW DETACH myaw
AW ATTACH myaw
DESCRIBE

DEFINE TRIGGER_BEFORE_UPDATE PROGRAM BOOLEAN
PROGRAM
SHOW JOINCHARS ('calltype = ' CALLTYPE)
SHOW JOINCHARS ('triggering event = ' TRIGGER(EVENT))
SHOW JOINCHARS ('triggering subevent = ' TRIGGER(SUBEVENT))
RETURN TRUE
END
 
DEFINE MYVAR VARIABLE TEXT

ただし、プログラムからの戻り値がFALSEになるようにプログラムを変更した場合は、ワークスペースのデタッチと再アタッチを実行すると、myvarの定義がワークスペース内に存在しなくなるだけでなく、TRIGGER_BEFORE_UPDATEプログラムの定義もワークスペース内に存在しなくなります。


TRIGGER_DEFINE

TRIGGER_DEFINEプログラムは、ユーザーが作成するプログラムであり、DEFINEコマンドの実行時には、Oracle OLAPによって名前の確認が行われます。このプログラムは、新しいオブジェクトを定義するアナリティック・ワークスペースと同じワークスペースに存在する場合に実行されます。


注意:

TRIGGER_DEFINEプログラムを実行するには、USETRIGGERSオプションをそのデフォルト値であるTRUEに設定する必要があります。

構文

TRIGGER_DEFINEという名前のプログラムを作成するには、「トリガー・プログラム」で示すガイドラインに従います。

例6-4 TRIGGER_DEFINEプログラム

次のような記述を持つTRIGGER_DEFINEプログラムをアナリティック・ワークスペースに作成したとします。

DEFINE TRIGGER_DEFINE PROGRAM
PROGRAM
SHOW JOINCHARS ('calltype = ' CALLTYPE)
SHOW JOINCHARS ('triggering event = ' TRIGGER(EVENT))
SHOW JOINCHARS ('fully qualified object name ='TRIGGER(NAME))
SHOW JOINCHARS ('type of object = 'OBJ(TYPE TRIGGER(NAME))
DESCRIBE &TRIGGER(NAME)
END

次の文に示すように、DEFINE VARIABLE文を発行して、myvarという変数を定義したとします。この文の後の出力に示すように、Oracle OLAPはこの変数を定義して、TRIGGER_DEFINEプログラムを実行します。

DEFINE myvar VARIABLE TEXT
calltype = TRIGGER
triggering event = DEFINE
fully qualified object name =MYAW!MYVAR
type of object = VARIABLE
 
DEFINE MYVAR VARIABLE TEXT