ヘッダーをスキップ
Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス
10g リリース2(10.2)
B19245-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

196 Rules Managerのタイプ

Rules Managerには、事前定義タイプおよびこのタイプのパブリック・シノニムがあります。


関連項目:

詳細は、『Oracle Databaseアプリケーション開発者ガイド-Rules ManagerおよびExpression Filter』を参照してください。

この章では、次の項目について説明します。


Rules Managerのタイプの要約

表196-1に、Rules Managerのオブジェクト・タイプを示します。

表196-1 Rules Managerのオブジェクト・タイプ

オブジェクト・タイプ名 説明

RLM$EVENTIDSオブジェクト・タイプ


CONSUME_PRIM_EVENTSプロシージャのイベント識別子のリストを指定します。



RLM$EVENTIDSオブジェクト・タイプ

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;