注意: この機能は、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; /