ヘッダーをスキップ
Oracle® Database PL/SQLパッケージおよびタイプ・リファレンス
11g リリース2(11.2)
B56262-06
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

258 ルール・マネージャのタイプ


注意:

この機能は、Oracle Databaseリリース11.2では非推奨で、リリース12.1では廃止されています。廃止の詳細は、My Oracle Support NoteID 1244535.1を参照してください。


ルール・マネージャには、1つの事前定義タイプとそのタイプに対するパブリック・シノニムがあります。


関連項目:

詳細は、『Oracle Databaseルール・マネージャおよび式フィルタ開発者ガイド』を参照してください。

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


ルール・マネージャのタイプの使用方法

この項では、ルール・マネージャのタイプの使用に関連する項目について説明します。


セキュリティ・モデル

Oracle Databaseインストールでは、catrul.sqlスクリプトを実行してDBMS_RLMGRパッケージをロードし、必要なルール・マネージャのスキーマ・オブジェクトをEXFSYSスキーマに作成します。


ルール・マネージャのタイプの要約

表258-1に、ルール・マネージャのオブジェクト・タイプを示します。

表258-1 ルール・マネージャのオブジェクト・タイプ

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

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プロシージャに渡します。ルール・クラスが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;
/