ONATTACHプログラムは、ユーザーが作成できるプログラムであり、AW ATTACHコマンドの実行時には、Oracle OLAPによってその名前の確認が行われます。プログラムからの戻り値に応じて、Oracle OLAPは、アナリティック・ワークスペースをアタッチするとすぐにプログラム内のコードを実行します。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を参照してください。
例
アタッチ・プログラムの動作例は、例9-49「起動プログラム」を参照してください。
ONDETACHプログラムは、ユーザーが作成できるプログラムであり、AW DETACHコマンドの実行時には、Oracle OLAPによってその名前の確認が行われます。さらにOracle OLAPでは、プログラムからの戻り値に応じて、アナリティック・ワークスペースがデタッチされた直後にプログラム内のコードが実行されます。
注意: ユーザーがアナリティック・ワークスペースをアタッチすると、Oracle OLAPではその他のプログラムの有無が確認されます。詳細は、「アナリティック・ワークスペースをアタッチするときに実行されるプログラム」を参照してください。 |
戻り値
BOOLEAN
Oracle OLAPにおいてアナリティック・ワークスペースのデタッチが正常に行われた場合はTRUE
、そうでない場合およびdetach
プログラムに例外が発生した場合はFALSE
です。
注意: 戻り値としてFALSE を発生させるために例外に依存せずに、正常な戻り値を使用することをお薦めします。 |
構文
ONDETACH
という名前のプログラムを定義するには、DEFINE PROGRAMに示す構文を使用します。
PERMIT_READプログラムは、ユーザーが作成できるプログラムであり、AW ATTACH読取り専用コマンドの実行時には、Oracle OLAPによりその名前の確認が行われます。プログラムからの戻り値に応じて、Oracle OLAPは、アナリティック・ワークスペースのアタッチ後にプログラム内部のコードを実行します。permit_read
プログラム内の文に応じて、特定のオブジェクトまたはオブジェクト値のセットに対するユーザーのアクセスが許可される場合と拒否される場合とがあります。permit_read
プログラム内では、個々のワークスペース・オブジェクトへのアクセス権を付与または制限するPERMITコマンドを指定できます。特定のpermit_read
プログラム内で参照されるすべてのオブジェクトは、同じアナリティック・ワークスペース内に存在する必要があります。
戻り値
BOOLEAN
Oracle OLAPがアナリティック・ワークスペースを正常に設定してアタッチした場合はTRUE
、そうでない場合およびpermit_read
プログラムに例外が発生した場合はFALSE
です。
注意: 戻り値としてFALSE を発生させるために例外に依存せずに、正常な戻り値を使用することをお薦めします。 |
構文
PERMIT_READ
という名前のプログラムを定義するには、DEFINE PROGRAMに示す構文を使用します。実際のプログラムは、次の引数を持つユーザー定義ファンクションとしてコーディングします。
PERMIT_READ (password)
引数
passwordの詳細は、AW ATTACHを参照してください。アナリティック・ワークスペースのアタッチ時にユーザーがパスワードを指定すると、そのパスワードはプログラムへの引数として渡されて処理されます。
例
アナリティック・ワークスペースがアタッチされるときに権限プログラムが実行される順番については、例9-49「起動プログラム」を参照してください。
PERMIT_WRITEプログラムは、ユーザーが作成できるプログラムであり、AW ATTACH読取り/書込みコマンドの実行時には、Oracle OLAPによりその名前の確認が行われます。プログラムからの戻り値に応じて、Oracle OLAPは、アナリティック・ワークスペースのアタッチ後にプログラム内部のコードを実行します。permit_write
プログラム内の文に応じて、特定のオブジェクトまたはオブジェクト値のセットに対するユーザーのアクセスが許可される場合と拒否される場合とがあります。permit_write
プログラム内では、個々のワークスペース・オブジェクトへのアクセス権を付与または制限するPERMITコマンドを指定できます。特定のpermit_write
プログラム内で参照されるすべてのオブジェクトは、同じアナリティック・ワークスペース内に存在する必要があります。
戻り値
BOOLEAN
Oracle OLAPがアナリティック・ワークスペースを正常に設定してアタッチした場合はTRUE
、そうでない場合およびpermit_write
プログラムに例外が発生した場合はFALSE
です。
注意: 戻り値としてFALSE を発生させるために例外に依存せずに、正常な戻り値を使用することをお薦めします。 |
構文
PERMIT_WRITE
という名前のプログラムを定義するには、DEFINE PROGRAMに示す構文を使用します。実際のプログラムは、次の引数を持つユーザー定義ファンクションとしてコーディングします。
PERMIT_WRITE (password)
引数
passwordの詳細は、AW ATTACHを参照してください。アナリティック・ワークスペースのアタッチ時にユーザーがパスワードを指定すると、そのパスワードはプログラムへの引数として渡されて処理されます。
例
アナリティック・ワークスペースがアタッチされるときに権限プログラムが実行される順番については、例9-49「起動プログラム」を参照してください。
TRIGGER_AFTER_UPDATEプログラムは、ユーザーが作成できるプログラムであり、アナリティック・ワークスペースに対するUPDATEコマンドの実行時には、Oracle OLAPによって名前の確認が行われます。このプログラムは、更新中のアナリティック・ワークスペースと同じワークスペースに存在する場合、UPDATEの実行後に実行されます。
構文
TRIGGER_AFTER_UPDATE
という名前のプログラムを作成するには、「トリガー・プログラム」で示すガイドラインに従います。
例
例4-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プログラムは、アナリティック・ワークスペース内でユーザーが作成できるプログラムです。そのアナリティック・ワークスペースが現行のアナリティック・ワークスペースであり、かつ別のアナリティック・ワークスペースを作成、アタッチ、デタッチまたは削除した場合には、Oracle OLAPによってその名前の確認が行われます。
戻り値
なし。
構文
TRIGGER_AW
という名前のプログラムは、「TRIGGER_AWプログラムの作成方法」に示すガイドラインに従って作成します。
注意
TRIGGER_AWプログラムの作成方法
TRIGGER_AWプログラムは、次の手順に従って作成します。
プログラムを定義します(DEFINE PROGRAMを参照)。
プログラムの名前としてTRIGGER_AWを指定します。
プログラムを実際にコーディングします(「プログラム内容の指定」を参照)。
注意: 再帰的トリガーはサポートされていません。TRIGGER_AWプログラムの内部でAW文を発行する場合は、その前にUSETRIGGERSオプションをNO に設定しておく必要があります。 |
TRIGGER_BEFORE_UPDATEプログラムは、ユーザーが作成できるプログラムであり、UPDATEコマンドの実行時には、Oracle OLAPによって名前の確認が行われます。このプログラムは、更新中のアナリティック・ワークスペースと同じワークスペースに存在する場合に実行されます。そしてプログラムの戻り値(存在する場合)に応じて、ワークスペースが更新されるかどうかが決まります。
戻り値
このプログラムは、BOOLEAN
値を戻すファンクションとして作成できます。この場合には、プログラムからの戻り値がFALSEのとき、TRIGGER_BEFORE_UPDATEプログラムの実行をトリガーしたUPDATE文は実行されません。プログラムからの戻り値がTRUE
またはNA
のときは、UPDATE文が実行されます。
構文
TRIGGER_BEFORE_UPDATE
という名前のプログラムを作成するには、「トリガー・プログラム」で示すガイドラインに従います。
例
例4-2 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_UPDATEプログラムが実行されます。
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プログラムは、ユーザーが作成するプログラムであり、DEFINEコマンドの実行時には、Oracle OLAPによって名前の確認が行われます。このプログラムは、新しいオブジェクトを定義するアナリティック・ワークスペースと同じワークスペースに存在する場合に実行されます。
構文
TRIGGER_DEFINE
という名前のプログラムを作成するには、「トリガー・プログラム」で示すガイドラインに従います。
例
例4-3 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