ルール・マネージャには、事前定義タイプおよびこのタイプのパブリック・シノニムがあります。
関連項目: 詳細は、『Oracle Databaseルール・マネージャおよび式フィルタ開発者ガイド』を参照してください。 |
この章では、次の項目について説明します。
表237-1に、ルール・マネージャのオブジェクト・タイプを示します。
RLM$EVENTIDS
タイプは、VARCHAR2
値の表として次のように定義されます。
構文
CREATE OR REPLACE TYPE RLM$EVENTIDS is table of VARCHAR2(38);
属性
なし
使用上の注意
RLM$EVENTIDS
タイプは、CONSUME_PRIM_EVENTS
ファンクションにイベント識別子のリストを渡すために使用します。これらのイベント識別子は、データベース内の対応するイベントのROWID
です。これらの値は、ルール・クラスがRULE
コンシューム・ポリシー用に構成されている場合、アクション・コールバック・プロシージャおよびルール・クラス結果ビュー列の引数を介して使用できます。
例
次のコマンドは、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; /