|
注意: この機能は、Oracle Databaseリリース11.2では非推奨で、リリース12.1では廃止されています。廃止の詳細は、My Oracle Support NoteID 1244535.1を参照してください。 |
ルール・マネージャには、1つの事前定義タイプとそのタイプに対するパブリック・シノニムがあります。
|
関連項目: 詳細は、『Oracle Databaseルール・マネージャおよび式フィルタ開発者ガイド』を参照してください。 |
この章では、次の項目について説明します。
この項では、ルール・マネージャのタイプの使用に関連する項目について説明します。
表258-1に、ルール・マネージャのオブジェクト・タイプを示します。
RLM$EVENTIDSは、VARCHAR2の値の表を定義します。
使用上の注意
RLM$EVENTIDSタイプは、イベント識別子のリストをCONSUME_PRIM_EVENTSプロシージャに渡します。ルール・クラスがRULEコンシューム・ポリシー向けに構成されている場合、これらのイベント識別子は、データベース内の対応するイベント用のROWIDで、それらの値は、アクション・コールバック・プロシージャの引数、およびルール・クラス結果ビュー列を介して使用できます。
例
次のコマンドは、RULEコンシューム・ポリシー用に構成されたルール・クラスのアクション・コールバック・プロシージャの本体を示しています。ここでは、RLM$EVENTDIDSタイプを使用して、一致するルールに対するアクションを実行する前にイベントをコンシュームする方法を示します。
CREATE OR REPLACE PROCEDURE PromoAction (
Flt AddFlight,
Flt_EvtId ROWID, --- rowid for the fligt primitive event
Car AddRentalCar,
Car_EvtId ROWID,
rlm$rule TravelPromotions%ROWTYPE) is
evtcnsmd NUMBER;
BEGIN
evtcnsmd := dbms_rlmgr.consume_prim_events(
rule_class => 'TravelPromotions',
event_idents => RLM$EVENTIDS(Flt_EvtId, Car_EvtId));
IF (evtcnsmd = 1) THEN
-- consume operation was successful; perform the action ---
OfferPromotion (Flt.CustId, rlm$rule.PromoType, rlm$rule.OfferedBy);
END IF;
END;
/